0

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

#undef main
int main()
{
}
4

1 回答 1

7

main 不是一#define开始的。你的#undef改变一点也没有。

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

如果您想要链接器错误,请重命名main为 eg main2,或执行以下操作:

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

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

于 2011-03-05T09:54:14.450 回答