【C语言】多文件编程

1、多文件编程,一个文件可以有多个函数,但是一个函数最多一个文件

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>
#include "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__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘星燎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值