Ich habe von meinem Kollegen gelernt, dass man ein C-Programm schreiben und ausführen kann, ohne eine main()Funktion zu schreiben . Es kann so gemacht werden:
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;
}
Kompilieren Sie es mit diesem Befehl:
gcc -o my_main my_main.c –nostartfiles
Führen Sie es mit diesem Befehl aus:
./my_main
Wann müsste man so etwas tun? Gibt es ein reales Szenario, in dem dies nützlich wäre?
_start()und andere Dinge außerhalb von besprochen werden main().
_startoder über einen anderen Einstiegspunkt aus main(außer dass der Name des Einstiegspunkts für freistehende (eingebettete) Implementierungen implementierungsdefiniert ist).
