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