C语言模块化开发(多文件编程)

1.main.c是程序的主模块,module.c是程序的一个模块,main中使用extern int m来声明变量,定义在module中,说明module中定义的全局变量的作用域是整个程序。

2.假如要使用printf函数的话就添加头文件stdio.h,头文件里面都是函数的声明,定义在系统库中。

3.函数的声明有无extern都行,变量的声明必须加上extern,否则编译器无法识别声明。

4.源代码和头代码.c/.h-(预处理)-无宏文件.i-(编译)-汇编代码.asm-(汇编)-机器指令.obj-(链接)-可执行文件.exe,预处理是处理#等,编译是得到汇编代码,汇编是把汇编代码转成机器指令,链接是把机器指令和一些库文件生成可执行文件。

5.目标文件是被编译过的多个二进制文件,每个目标文件都包含多个块,如文件头、程序头表、代码段和注释信息等,可执行文件就是将多个目标文件的各个块按类叠加存放。

6.刚开始的程序员用机器语言地址来编程,假如要修改一个东西的话,地址的值就要重新修改,后来发明链接器器代替人工计算数据地址,发明汇编器用助记符代替地址(汇编语言),后来发明编译器来将C语言转成汇编代码。

7.链接就是确定函数和全局变量的地址,并对每一个重定位入口进行修正。

8.声明全部放在module.h中,定义全部放在module.c中,要使用的话就可以#include “module.h”,定义会自己找到。

9.#include <stdio.h>,#include "myfile.h",双引号先在工程目录里寻找,再去系统目录里寻找。

10.用一个宏来解决头文件多次包含的问题。

11.static第一个作用是隐藏,全局变量和函数的作用范围限制在当前模块,第二个是赋值语句执行一次之后就不会再执行了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值