#undef main没有结果

时间:2011-03-05 09:51:00

标签: c++ visual-studio-2010 main undef

我正在使用MVisualC ++ 2010,当我尝试取消定义“main”时,没有结果,控制台像往常一样启动。我期待一些丢失的入口点错误或其他什么。 那是为什么?

#undef main
int main()
{
}

1 个答案:

答案 0 :(得分:7)

main首先不是#define。您的#undef根本没有任何改变。

#define foo bar告诉预处理器“用bar替换foo的所有出现”。 #undef foo告诉预处理器“foo不再具有特殊含义,保持原样”

如果您想要链接器错误,请将main重命名为例如main2,或者例如这样:

void foo();
int main() {
  foo();
}

这告诉编译器存在foo函数(但不存在它)。 main尝试使用它,因此链接器在找不到它时会发出错误。