Dowiedziałem się od mojego kolegi, że można napisać i wykonać program w języku C bez pisania main()funkcji. Można to zrobić w ten sposób:
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;
}
Skompiluj to za pomocą tego polecenia:
gcc -o my_main my_main.c –nostartfiles
Uruchom go za pomocą tego polecenia:
./my_main
Kiedy należałoby robić takie rzeczy? Czy istnieje scenariusz ze świata rzeczywistego, w którym byłoby to przydatne?
_start()i inne rzeczy poza nim main().
_startżadnym punkcie wejścia ani o jakimkolwiek punkcie wejścia poza main(poza tym, że nazwa punktu wejścia jest zdefiniowana przez implementację dla implementacji wolnostojących (osadzonych)).
