【发布时间】:2014-04-01 02:11:27
【问题描述】:
我刚刚在一些代码中看到了类似的东西,我很惊讶它可以编译,谁能告诉我这是否有名字?
bool value()
{
return true;
}
int main()
{
bool value(); //why does this work? What is it?
return 0;
}
我的大脑告诉我,这是在内存中为函数腾出空间,但同时也是函数调用......好吧,这对我来说真的没有意义。
【问题讨论】:
-
这不是一个调用,因为你会看到函数是否输出了一些东西。其实编译器could tell you是个什么东西。
-
值得一提的是,它实际上并没有在运行时生成任何代码或做任何事情。如果
value函数是在源文件中的main()之后定义的,这种事情主要是有用的,但是main需要知道它的原型以便它可以调用它。恕我直言,这不是很好的做法...只需将value定义在它所在的位置,然后从main()中删除bool value();行。 -
感谢@chris 和 Tony D。这很有道理。