下面的函数调用会生成编译器错误:
void myfun() {}
myfun(); // error:
// gcc -- error: expected constructor, destructor, or type conversion before ';' token
// clang -- error: C++ requires a type specifier for all declarations
int main()
{
// ...
}
有人可以解释一下吗?函数调用如何与声明混淆?如果在main()
内移动函数调用,为什么错误会消失?
答案 0 :(得分:2)
除非将它们用于变量初始化,否则不能在函数外执行函数调用。所以你应该写......
void myfun() {}
int main()
{
myfun();
}
或
int myfun() { return 1; }
int dummy = myfun();
int main() {
}