Я узнал от своего коллеги, что можно написать и выполнить программу на 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(за исключением того, что имя точки входа определяется реализацией для автономных (встроенных) реализаций).
