C语言模块化开发(多文件编程)
2017-09-16 09:25
435 查看
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第一个作用是隐藏,全局变量和函数的作用范围限制在当前模块,第二个是赋值语句执行一次之后就不会再执行了。
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第一个作用是隐藏,全局变量和函数的作用范围限制在当前模块,第二个是赋值语句执行一次之后就不会再执行了。
相关文章推荐
- C语言(7) 模块化编程及多文件开发注意事项
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- 16-C语言模块化编程(多文件编程)
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法!
- keil 中——C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- Linux Unicode 编程--C语言如何使用/生成UTF-8编码格式的文件
- iOS开发之网络编程--获取文件的MIMEType
- 20170105C语言项目04_编程模块化思维
- 【阅读笔记之十二】《DIRECTX.9.0.3D游戏开发编程基础》:网格(二)浅话X文件和渐进网格
- iOS开发之网络编程--使用NSURLConnection实现文件上传
- C语言编程开发中用好位操作符
- Node文件模块(文件流读取和写入、path模块等)& Node网络编程(Socket、Server概念)&Nodeweb开发
- C语言编程开发中的移位操作符
- [linux] C语言Linux系统编程-socket开发响应HTTP协议
- C语言项目开发-项目架构和编程命名规范
- java文件操作大全-Java基础-Java-编程开发
- C语言模块化编程
- Android编程开发之打开文件的Intent及使用方法
- 总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)