C++ undefmain不给出任何结果

C++ undefmain不给出任何结果,c++,visual-studio-2010,main,undef,C++,Visual Studio 2010,Main,Undef,我正在使用MVisualC++2010,当我尝试取消定义main时,没有结果,控制台像往常一样启动。我期待着一些丢失的入口点错误或什么的。 为什么呢 #undef main int main() { } main一开始并不是一个定义。您的undef完全不改变任何内容 definefoobar告诉预处理器用bar替换所有出现的foo。 undeffoo告诉预处理器foo不再有特殊意义,保持原样 如果需要链接器错误,请将main重命名为例如main2,或执行例如以下操作: void foo();

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

#undef main
int main()
{
}
main一开始并不是一个定义。您的undef完全不改变任何内容

definefoobar告诉预处理器用bar替换所有出现的foo。 undeffoo告诉预处理器foo不再有特殊意义,保持原样

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

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

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

因此,如果我在使用SDL时取消定义main,我不会使用标准库,只使用SDL中实现的某个东西?如果有人告诉你不要定义main,这意味着不要创建main函数。术语define与define不同,它的意思是在SDL上创建这个函数/变量,我不使用它,但我相信它所做的是使用define来重命名main。在这种情况下,您的undef将取消重命名,并且不会调用SDL自己的main。