【发布时间】:2011-02-28 05:41:18
【问题描述】:
我尝试了几种变化
main() return;
或
main() if();
得到不同的错误,其中最奇特的是
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o:在函数`_start'中: (.text+0x18): undefined reference to `main' collect2: ld 返回 1 个退出状态虽然程序只需要一个语句并不常见,但为什么 main() 要求有大括号?
有人能解释一下为什么只编译 int main(); 时错误如此奇怪吗?
【问题讨论】:
-
你是想说,void OneStatement() printf("One Statement");将是一个有效的函数定义。
-
你的前提不正确。
main或任何其他函数都不需要以大括号开头。这是一个有效的程序:int main() try { throw 1; } catch (...) { return 0; }。 (这称为函数尝试块,除此之外,所有函数的主体必须用大括号括起来,而不仅仅是main的)。
标签: c++ language-design main