4
“ int main (vooid)”? ทำงานอย่างไร?
เมื่อเร็ว ๆ นี้ฉันต้องพิมพ์โปรแกรมทดสอบ C ขนาดเล็กและในกระบวนการนี้ฉันได้สะกดคำผิดในฟังก์ชันหลักโดยบังเอิญใช้vooidแทนvoid. แต่มันก็ยังใช้งานได้ การลดลงเป็นเวอร์ชันสมบูรณ์ที่เล็กที่สุดฉันลงเอยด้วย: int main (vooid) { return 42; } นี้ไม่แน่นอนรวบรวม ( gcc -Wall -o myprog myprog.c) และเมื่อทำงานก็จะส่งกลับ 42 รหัสนี้ถูกต้องแค่ไหน? นี่คือการถอดเสียงและวางจากbashเชลล์ของฉันเพื่อแสดงสิ่งที่ฉันกำลังทำ: pax$ cat qq.c int main (vooid) { return 42; } pax$ rm qq ; gcc -Wall -o qq qq.c ; ./qq pax$ echo $? 42