Meslektaşımdan, bir kişinin bir main()
işlev yazmadan bir C programı yazıp çalıştırabileceğini öğrendim . Şu şekilde yapılabilir:
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;
}
Şu komutla derleyin:
gcc -o my_main my_main.c –nostartfiles
Şu komutla çalıştırın:
./my_main
Böyle bir şeyi ne zaman yapmak gerekir? Bunun yararlı olacağı herhangi bir gerçek dünya senaryosu var mı?
_start()
ve dışındaki diğer şeyleri tartışan iyi bir okuma main()
.
_start
herhangi bir giriş noktası hakkında veya hakkında hiçbir şey söylemez main
(giriş noktasının adının bağımsız (gömülü) uygulamalar için uygulama tanımlı olması dışında).