C语言工程内如何调用其它文件的函数和变量?
C语言代码是以“文件”为单位组织进行的。 下面我们通过两个问题的解答,进而展开讲解。
问题1:
同一个工程内,b.c文件如何调用a.c内的全局变量(非静态)和函数(非静态)呢?
答:
有两种方法。
第1种方法:
在b.c文件头部中,直接添加用extern声明要调用的全局变量、函数的语句即可。 (声明全局变量时必须加extern关键字;声明函数时加不加都行,不过建议加上,增加代码可阅读性)
第2种方法:
- 首先创建一个a.h的头文件;
- 在a.h文件内,添加用extern声明要调用的全局变量、函数的语句。(这里声明函数时一般不用加extern)
- 在b.c文件头部添加a.h头文件。#include "a.h"
问题2:
以上2种方法,具体选择哪一个?
答:
两种方法都可以。 不过当a.h文件内还有其它与b.c无关的语句时,而我们又不希望这些无关语句通过 #include “a.h” 而最终加入到b.c文件代码中的话,建议选择第1种方法。