- 2
- 0
- 约9.85千字
- 约 15页
- 2017-05-20 发布于北京
- 举报
II.C语言本质20链接祥解2定义及声明
第?20?章?链接详解
2.?定义和声明
2.1.?extern和static关键字
在上一节我们把两个程序文件放在一起编译链接,main.c用到的函数push、pop和is_empty由stack.c提供,其实有一点小问题,我们用-Wall选项编译main.c可以看到:
$ gcc -c main.c -Wall
main.c: In function ‘main’:
main.c:8: warning: implicit declaration of function ‘push’
main.c:12: warning: implicit declaration of function ‘is_empty’
main.c:13: warning: implicit declaration of function ‘pop’
这个问题我们在第?2?节 “自定义函数”讨论过,由于编译器在处理函数调用代码时没有找到函数原型,只好根据函数调用代码做隐式声明,把这三个函数声明为:
int push(char);
int pop(void);
int is_empty(void);
现在你应该比学第?2?节 “自定义函数”的时候更容易理解这条规则了。为什么编译器在处理函数调用代码时需要有函数原型?因为必须知道参数的类型和个数以及返回值的类型才知道生成什么样的指令。为什么隐式声明靠不住呢?因
您可能关注的文档
最近下载
- (二模)2026年沈阳市高三年级教学质量监测(二)化学试卷(含答案).pdf
- 2025年黑龙江省纪委公务员遴选考试真题和答案.docx VIP
- 2025年口腔医学主治医师考试《专业知识》真题卷(含每题答案).docx VIP
- 全国医疗器械技术审评考试真题试卷(含答案).pdf VIP
- 2025河北水文四队地质勘查有限公司(第三批)招聘考试备考试题及答案解析.docx VIP
- 植物与植物生理 植物分类 植物分类基础.pptx VIP
- 巴音敖包嘎查废弃矿坑地质环境恢复治理项目环评报告书.pdf VIP
- 【TechInsights】2025存储技术趋势与展望报告聚焦DRAM和NAND技术.docx
- (三模)榆林市2026届高三年级四月检测训练政治试卷(含答案及解析).docx
- 等比数列导学学案.pptx VIP
原创力文档

文档评论(0)