11.C进阶之多文件C语言项目


11.1.为什么需要多文件项目
(1)真正的C语言项目是很复杂的,包含很多个函数,写在一个文件中不利于查找、组织、识别。所以人为的将复杂项目中的很多函数分成了不同的功能模块,然后分开放在不同的.c文件中,于是乎有了多文件项目。
(2)在多文件项目中,你在任何一个文件中定义的任何一个函数,都有可能被其他任何一个文件中的函数来调用。但是大家最终都是被main函数调用的,有可能是直接调用,也可能是间接调用。


11.2.跨文件调用函数
(1)在调用函数前,要先声明该被调用函数的原型。函数使用的三大要素为函数定义、函数声明、函数调用:
如果没有定义,只有声明和调用,则编译时会报连接错误,undefined reference to `func_in_a’。
如果没有声明,只有定义和调用,则编译时一般会报警告,极少数情况下不会报警告,但是最好加上声明。
如果没有调用,只有定义和声明,则编译时一般会报警告,有时不会报警告,这时候程序执行不会出错。
(2)在一个项目下,不管是一个文件内,还是该项目的多个文件内,都不能出现函数名重复的情况。一旦重复,编译器就会报错。主要是因为编译器在调用函数时是根据函数名来识别不同的函数的,它被两个相同的函数名搞混乱了。


11.3.跨文件引用全局变量
(1)在a.c中定义的全局变量,在a.c中可以使用,在b.c中不可以直接使用,编译时报错 error: ‘g_a’ undeclared (first use in this function)
(2)想在b.c中使用a.c中定义的全局变量,有一个间接的使用方式。在a.c中写

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值