#undef main没有结果

Neo*_*mex 0 c++ program-entry-point undef visual-studio-2010

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

#undef main
int main()
{
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*rik 7

主要不是#define第一位的.你的#undef改变什么都没有.

#define foo bar告诉预处理器"用bar替换foo的所有出现". #undef foo告诉预处理器"foo已经没有特殊意义了,保持原样"

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

void foo();
int main() {
  foo();
}
Run Code Online (Sandbox Code Playgroud)

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