• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

gcc执行make文件时为什么会有警告?按老师的做的阿(来自linux的原理与实践

wenyue@wen-Inspiron-3459:~/workspace/les1$ make
gcc Max.c hello.c
hello.c: In function ‘main’:
hello.c:7:11: warning: implicit declaration of function ‘max’ [-Wimplicit-function-declaration]
   int num=max(a,b);
           ^

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与2

main函数的代码中没有声明 max函数吗? 或者是没有include "max.h" 吗?

使用道具 举报

回复写不开,再回答一贴:
应该和gcc版本没关系。
C语言所有函数在使用前都必须声明,所以按道理,是不能不写max声明的。


不过呢,如果老师是想用这个例子来讲解“链接的行为”,那也有可能会给出这样的示例。


那么为什么你没有提前声明,仍能编译通过呢?
因为C语言有个“隐式声明”的机制,如果函数没有提前声明,那么编译器会假定其参数类型和返回类型是int。而在这里例子中这个隐式声明正好和实际函数相匹配,所以可以最终链接成功。 也是因为这样,这里编译器只是提出了个警告,而非报错。


当然具体是不是这个原因,只能看完整的代码来确定。

使用道具 举报

发新帖

发布任务需求已有1031164位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!