【C语言】多文件编程
2017-07-29 21:23
274 查看
1、多文件编程,一个文件可以有多个函数,但是一个函数最多一个文件
2、多文件编程的步骤:
• 把所有函数分散在多个文件中,通常主函数在单独的文件里
• 为每个源文件编写一个配对的以.h作为扩展名的头文件,主函数所在的不需要,不分配内存的内容都可以写在头文件里,头文件里至少要包含配对源文件里所有函数的声明
• 在所有源文件里使用#include预处理指令包含所需要的头文件,配对头文件是一种需要的头文件,如果源文件里声明了头文件里声明的函数,也是需要的头文件
3、在GCC命令后列出所有源文件的路径就可以编译多文件程序
4、可以把多文件程序的编译过程记录在Makefile文件里,然后使用make工具完成编译
5、
6、
7、不可以跨文件使用静态全局变量
2、多文件编程的步骤:
• 把所有函数分散在多个文件中,通常主函数在单独的文件里
• 为每个源文件编写一个配对的以.h作为扩展名的头文件,主函数所在的不需要,不分配内存的内容都可以写在头文件里,头文件里至少要包含配对源文件里所有函数的声明
• 在所有源文件里使用#include预处理指令包含所需要的头文件,配对头文件是一种需要的头文件,如果源文件里声明了头文件里声明的函数,也是需要的头文件
3、在GCC命令后列出所有源文件的路径就可以编译多文件程序
eg:lxl@ubuntu:~/day/day14$ gcc text1.c text1-1.c
4、可以把多文件程序的编译过程记录在Makefile文件里,然后使用make工具完成编译
#ifndef __TEXT_H__//用条件编译防止text.h被多次包含 // 使用条件编译可以避免重复编译, // 需要注意的是要使用#ifndef语句 // 不同头文件的宏名称必须不同 // 头文件产用的宏名称应该是根据头文件的路径得来的 #define __TEXT_H__ int add(int,int);//头文件里至少要包含配对源文件里所有函数的声明 #endif //__TEXT_H__
5、
从一个源文件里使用另一个源文件的全局变量时,需要使用extern关键字再次声明这个全局变量先在函数里添加变量,再在头文件用extern声明
6、
使用exrern关键字声明变量时,通常放在头文件里
7、不可以跨文件使用静态全局变量
练习:
多文件编程:
text1.c: /* * 多文件编程 * */ #include <stdio.h> #inclu 4000 de "text1-1.h" int main() { int num = add(3, 8); printf("num:%d\n", num); return 0; } text1-1.c: #include "text1-1.h"//将声明本函数的头文件包含进来 //如果还有其他函数也需要包含进 int add(int num, int num1) { return num +num1; } text1-1.h: #ifndef __TEXT_H__//如果一个文件包含了此头文件多次,使用这种方法,即在第一次编译时没有定义ABC的宏,执行了下面的所有,第二次再遇到编译此文件时ABC已经被定义,就不会再编译 // 使用条件编译可以避免重复编译, // 粗要注意的是要使用#ifndef语句 // 不同头文件的宏名称必须不同 // 头文件产用的宏名称应该是根据头文件的路径得来的 #define __TEXT_H__ int add(int,int);//头文件里至少要包含配对源文件里所有函数的声明 #endif //__TEXT_H__
相关文章推荐
- C语言编程中从密码文件获取数据的函数总结
- C语言模块化开发(多文件编程)
- 16-C语言模块化编程(多文件编程)
- Linux下C语言高级编程必备!(附多文件编程代码)
- Linux 文件编程及通用C语言的文件编程
- 菜鸟攻略——C语言多文件编程初探(一)
- C语言多文件编程
- Unix下C语言----低级文件编程
- C语言编程获取PE文件导入函数
- Linux下So文件的加载(C语言编程)
- Unix下C语言----目录文件编程
- C语言之文件编程标志I/O库(2)
- C语言编程获取PE文件导出表内容
- C语言(7) 模块化编程及多文件开发注意事项
- Linux下的C语言编程——文件操作
- Linux Unicode 编程--C语言如何使用/生成UTF-8编码格式的文件
- 详解keil采用C语言模块化编程时全局变量、结构体的定义、声明以及头文件包含的处理方法
- [FileIO]C语言中流与文件操作编程学习
- Linux Unicode 编程--C语言如何使用/生成UTF-8编码格式的文件
- C语言--- 字符串数组 、 预处理器和预处理指令 、 多文件编程 、 结构体