#ifndef __GNUC__ 날 질식
Sep 04 2020
이 질문은 완전히 이상 할 수 있습니다. 현재 나는 (내가 아닌) 오래된 코드를 작업 중입니다. 저는 실제로 C 프로그래머는 아니지만이 코드 부분이 실제로 무엇을해야하는지 이해하려고합니다. 다행히도 이상한 부분은 그리 길지 않습니다 (구성의 일부).
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
GNU 컴파일러가 아니라면 "choke me"...이게 무슨 choke me뜻인지 ... 정말 이해가 안가요. (그리고 인터넷 검색을하면서 이상한 것만 발견했습니다 -.-)
답변
3 NateEldredge Sep 04 2020 at 09:36
유효한 C가 아닌 것으로 간주되어 구문 오류를 유발하여 파일이 컴파일되지 않도록합니다.
아마도 프로그래머는 코드가 GNU C (gcc)를 제외한 모든 컴파일러에서 작동하도록 의도하지 않았으므로 다른 컴파일러를 사용하면 빌드가 실패하게됩니다. "이는 컴파일러가 '삼킬 수없는'것이고 죽이는 것"이라는 의미에서 "나를 질식시킨다"라는 의미를 제외하고는 선택된 단어에 특별한 의미가 없습니다.
보다 현대적인 접근 방식은 #error.
2 Someprogrammerdude Sep 04 2020 at 09:36
잘못된 문장이므로 오류가 발생합니다.