'#pragma'명령은 ANSI 표준에서 임의의 구현 정의 효과가 지정됩니다. GNU C 전처리 기에서 '#pragma'는 먼저 'rogue'게임을 실행하려고 시도합니다. 실패하면 게임 '해킹'을 실행하려고 시도합니다. 실패하면 GNU Emacs를 실행하여 하노이 탑을 표시합니다. 실패하면 치명적인 오류가 발생합니다. 어쨌든 전처리는 계속되지 않습니다.
- 리차드 스톨만은 GNU C 전 처리기, 버전 1.34
프로그램 실행은 시작 코드에서 시작, 또는 "런타임". 이것은 대개 컴파일러 패키지와 함께 제공되는 crt0.o
파일에있는 _start
또는 일부 (Unix 시스템의 경우)라는 어셈블러 루틴입니다. C 실행 파일 (예 : stdin
, stdout
및 stderr
)을 실행하는 데 필요한 설정은 atexit()
... atexit()
...로 사용되는 벡터이며 전역 개체 초기화, 즉 생성자 실행 등이 포함됩니다. 그런 다음에만 제어가 main()
으로 점프합니다.
내 대답의 시작 부분에 인용문이 매우 설득력있게 표현되어 있기 때문에 #pragma
은 완전히 귀하의 컴파일러에 달려 있습니다. 설명서를 확인하십시오.
[어떻게하면 pragma startup preprocessor를 사용할 수 있습니까?] (http://stackoverflow.com/questions/5617005/how-do-you-use-pragma-startup-preprocessor) – Mat