คำถามติดแท็ก function-parameter

10
ทำไมฟังก์ชั่นที่ไม่มีพารามิเตอร์ (เมื่อเปรียบเทียบกับนิยามของฟังก์ชันจริง) คอมไพล์?
ฉันเพิ่งเจอรหัส C ของใครบางคนที่ฉันสับสนว่าทำไมมันถึงรวบรวม มีสองประเด็นที่ฉันไม่เข้าใจ ก่อนอื่นฟังก์ชั่นต้นแบบนั้นไม่มีพารามิเตอร์เทียบกับนิยามฟังก์ชันจริง ประการที่สองพารามิเตอร์ในการกำหนดฟังก์ชั่นไม่ได้มีประเภท #include <stdio.h> int func(); int func(param) { return param; } int main() { int bla = func(10); printf("%d", bla); } ทำไมจึงใช้งานได้ ฉันได้ทดสอบมันในคอมไพเลอร์สองสามอันและมันใช้งานได้ดี

30
วิธีรับชื่อฟังก์ชัน / ค่าพารามิเตอร์แบบไดนามิก?
มีวิธีรับชื่อพารามิเตอร์ฟังก์ชั่นของฟังก์ชั่นแบบไดนามิกหรือไม่? สมมติว่าฟังก์ชั่นของฉันเป็นแบบนี้ function doSomething(param1, param2, .... paramN){ // fill an array with the parameter name and value // some other code } ทีนี้ฉันจะดูรายการชื่อพารามิเตอร์และค่าของมันลงในอาร์เรย์จากภายในฟังก์ชันได้อย่างไร


3
วิธีหลีกเลี่ยงการแปลงโดยนัยจากจำนวนเต็ม 0 ถึงตัวชี้เป็นองค์ประกอบของเวกเตอร์
มีสถานการณ์ที่ฉันต้องการรวบรวมชื่อโหนดทั้งหมดของพา ธ ไปยังคีย์ใน JSON พิจารณาเงื่อนไขของดัชนีอาเรย์ "0", "1" ด้วยเช่นกัน แต่มันก็ง่ายที่จะลืมเครื่องหมายคำพูดซึ่งจะนำไปสู่ความผิดพลาดเมื่อทำการอ้างอิง ดังนั้นฉันต้องการปฏิเสธสิ่งนี้ ตัวอย่าง: #include <vector> #include <iostream> int func(const std::vector<const char*>& pin) { return pin.size(); } int main() { // {"aname", "3", "path", "0"} wanted but this still compile std::cout << func({"aname", "3", "path", 0}) << std::endl; } ฉันพบและลองสิ่งนี้ฉันจะหลีกเลี่ยงการแปลงโดยนัยในฟังก์ชั่นที่ไม่ได้สร้างได้อย่างไร ดังต่อไปนี้: #include <vector> …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.