1. 一个程序分装在两个 .c 文件里面(同一个文件夹),需要增加一个 .h 文件,然后两个 .c 文件都 include 那个 .h 头文件。
而且一个 .h 头文件只能链接一个 .c 文件。
头文件里面的东西在程序运行的时候,是不存在的,所以,函数声明可以放在头文件里,变量声明不可以。
编写头文件的时候,要使用条件编译,避免头文件被多次编译。
一个加法程序如下:
主函数 code.c 文件如下:
#include <stdio.h>
#include "add.h" // code.c 和 add.c 在同一个文件夹,所以用 “”,而不是 < >
extern int result; // 全局变量,在 add.c 已经定义了,此处只是再次调用而已,所以要加 extern
int main()
{
add(7, 3); // 因为它无返回值,所以只能在此单独调用,不能写在 printf 里面。
printf("%d\n", result);
return 0;
}
加法函数 add.c 内容如下:
#include <stdio.h> // 如果下面需要调用这个库,则在这需要声明,与主函数是否有无关
#include "add.h" // 记得加入这个头文件
int result; // 定义全局变量,除了此处不加 extern,其他都得加。注意:此处不能用 static 修饰 result,否则作用域变小,main函数无法调用。
void add(int value, int value1) // void无返回值
{
result = value + value1;
}
连接函数 add.h 如下:
#ifndef __ADD_H__ // 如果add.h未被定义,则执行下面的语句(这里是#ifndef,而不是ÿ
而且一个 .h 头文件只能链接一个 .c 文件。
头文件里面的东西在程序运行的时候,是不存在的,所以,函数声明可以放在头文件里,变量声明不可以。
编写头文件的时候,要使用条件编译,避免头文件被多次编译。
一个加法程序如下:
主函数 code.c 文件如下:
#include <stdio.h>
#include "add.h" // code.c 和 add.c 在同一个文件夹,所以用 “”,而不是 < >
extern int result; // 全局变量,在 add.c 已经定义了,此处只是再次调用而已,所以要加 extern
int main()
{
add(7, 3); // 因为它无返回值,所以只能在此单独调用,不能写在 printf 里面。
printf("%d\n", result);
return 0;
}
加法函数 add.c 内容如下:
#include <stdio.h> // 如果下面需要调用这个库,则在这需要声明,与主函数是否有无关
#include "add.h" // 记得加入这个头文件
int result; // 定义全局变量,除了此处不加 extern,其他都得加。注意:此处不能用 static 修饰 result,否则作用域变小,main函数无法调用。
void add(int value, int value1) // void无返回值
{
result = value + value1;
}
连接函数 add.h 如下:
#ifndef __ADD_H__ // 如果add.h未被定义,则执行下面的语句(这里是#ifndef,而不是ÿ