ฉันเรียนรู้จากเพื่อนร่วมงานว่าสามารถเขียนและรันโปรแกรม C ได้โดยไม่ต้องเขียนmain()
ฟังก์ชัน สามารถทำได้ดังนี้:
my_main.c
/* Compile this with gcc -nostartfiles */
#include <stdlib.h>
void _start() {
int ret = my_main();
exit(ret);
}
int my_main() {
puts("This is a program without a main() function!");
return 0;
}
รวบรวมด้วยคำสั่งนี้:
gcc -o my_main my_main.c –nostartfiles
เรียกใช้ด้วยคำสั่งนี้:
./my_main
เมื่อไหร่ที่ต้องทำแบบนี้? มีสถานการณ์จริงในโลกที่จะเป็นประโยชน์หรือไม่?
_start()
ๆ main()
_start
หรือเกี่ยวกับจุดเข้าใช้งานอื่นใดนอกจากmain
(ยกเว้นว่าชื่อของจุดเริ่มต้นนั้นถูกกำหนดให้ใช้งานสำหรับการใช้งานอิสระ (ฝังตัว))