Ho imparato dal mio collega che si può scrivere ed eseguire un programma C senza scrivere una main()funzione. Può essere fatto in questo modo:
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;
}
Compilalo con questo comando:
gcc -o my_main my_main.c –nostartfiles
Eseguilo con questo comando:
./my_main
Quando sarebbe necessario fare questo genere di cose? Esiste uno scenario del mondo reale in cui ciò sarebbe utile?
_start()e altre cose al di fuori di main().
_starto su qualsiasi punto di ingresso diverso da main(tranne che il nome del punto di ingresso è definito dall'implementazione per implementazioni indipendenti (incorporate)).
