我正在使用MVisualC ++ 2010,当我尝试取消定义“main”时,没有结果,控制台像往常一样启动。我期待一些丢失的入口点错误或其他什么。 那是为什么?
#undef main
int main()
{
}
答案 0 :(得分:7)
main首先不是#define
。您的#undef
根本没有任何改变。
#define foo bar
告诉预处理器“用bar替换foo的所有出现”。
#undef foo
告诉预处理器“foo不再具有特殊含义,保持原样”
如果您想要链接器错误,请将main
重命名为例如main2
,或者例如这样:
void foo();
int main() {
foo();
}
这告诉编译器存在foo
函数(但不存在它)。 main
尝试使用它,因此链接器在找不到它时会发出错误。