동료로부터 main()
함수 를 작성하지 않고도 C 프로그램을 작성하고 실행할 수 있다는 것을 배웠습니다 . 다음과 같이 할 수 있습니다.
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
(단, 진입 점의 이름이 독립 (임베디드) 구현에 대해 구현 정의 된 경우 제외).