0
MVisualC++ 2010에서 작업하고 있는데 "main"을 정의 해제하려고하면 결과가없고 평상시처럼 콘솔이 시작됩니다. 일부 누락 된 진입 점 오류 또는 뭔가 기대했다. 왜 그럴까요?#undef main 결과가 없습니다.
#undef main
int main()
{
}
MVisualC++ 2010에서 작업하고 있는데 "main"을 정의 해제하려고하면 결과가없고 평상시처럼 콘솔이 시작됩니다. 일부 누락 된 진입 점 오류 또는 뭔가 기대했다. 왜 그럴까요?#undef main 결과가 없습니다.
#undef main
int main()
{
}
메인은 처음에는 #define
이 아닙니다. #undef
은 전혀 변경되지 않습니다.
#define foo bar
은 전 처리기에 "foo의 모든 발생을 막대로 바꾸십시오"라고 알려줍니다. #undef foo
당신이 링커 오류를 원하는 경우
, 가령하는 main
이름을 바꿉니다 "foo는 그대로두고, 더 이상 특별한 의미가 없다"전처리를 알려줍니다 main2
또는 예를 들어. 이 :
void foo();
int main() {
foo();
}
이것은 foo
기능 (하지만하지 무엇을)을 존재하는 컴파일러를 알려줍니다. main
은 그것을 사용하려고 시도하므로 링커는 찾을 수 없을 때 오류를 발생시킵니다.
그래서 SDL을 사용하는 동안 main을 undef하면 SDL로 구현 된 것과 함께 표준 라이브러리에서 작동하지 않습니까? – Neomex
누군가가 main을 정의하지 않는다고 말하면, "main function을 만들지 말라"는 뜻입니다. 정의라는 용어는'#define'과 같지 않습니다. 이것은 "이 함수/변수 생성"을 의미합니다. – Erik
SDL에서는 이것을 사용하지 않지만 #define을 사용하여 main . #undef는이 경우 이름 바꾸기를 취소하고 SDL 자체의 'main'은 호출되지 않습니다. – Erik