wenyue@wen-Inspiron-3459:~/workspace/les1$ makegcc Max.c hello.chello.c: In function ‘main’:hello.c:7:11: warning: implicit declaration of function ‘max’ [-Wimplicit-function-declaration] int num=max(a,b); ^
2 回答
onemoo
TA贡献883条经验 获得超454个赞
回复写不开,再回答一贴:
应该和gcc版本没关系。
C语言所有函数在使用前都必须声明,所以按道理,是不能不写max声明的。
不过呢,如果老师是想用这个例子来讲解“链接的行为”,那也有可能会给出这样的示例。
那么为什么你没有提前声明,仍能编译通过呢?
因为C语言有个“隐式声明”的机制,如果函数没有提前声明,那么编译器会假定其参数类型和返回类型是int。而在这里例子中这个隐式声明正好和实际函数相匹配,所以可以最终链接成功。 也是因为这样,这里编译器只是提出了个警告,而非报错。
当然具体是不是这个原因,只能看完整的代码来确定。
- 2 回答
- 0 关注
- 1694 浏览
添加回答
举报
0/150
提交
取消