【发布时间】:2013-11-14 04:58:21
【问题描述】:
我正在 Code::Blocks v 12.11 中测试以下代码:
#include <stdio.h>
int main()
{
display();
return 0;
}
void display()
{
printf("\nHi");
}
它编译成功并且运行良好。我无法理解为什么? 我的查询如下:
在 C/C++ 中使用之前,至少需要声明一个函数或变量。这里,在我们调用函数 display() 之前没有声明。
1234563它是 void display()。
【问题讨论】:
-
你是对的,一个函数应该在c之前声明,否则它会出错。
-
你的第二点是错误的。您已经定义了一个返回类型 void 并且您的函数返回 void。我认为函数没有默认返回类型 - 您必须将返回类型定义为函数定义的一部分。
-
@FaddishWorm 不,在 C90 中,如果函数尚未声明,则假定它们返回
int。因此int main(void){ int x = 1 + f(); return x; }编译,如果f()被假定返回void,则不会编译。