C语言里的extern使用

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:39:39
我在a folder下面有一个 a.c
b folder 下面有一个 b.c
c folder 下面有一个 c.h

我在a.c里有一个函数
b.c 里跑这个函数(在后台运行)所以要看看a.c里的一个变量status

我如何用extern 来让b.c也能调用这个函数。

我的做法是:a.c 定义 status
c.h (a.c b.c 均includes这个头文件) 声明 extern status
b.c 直接用status
但是编译报错 说b.c里的status没定义。
有啥办法可以解决这个问题?

你三个文件分布在不同的文件夹,include的时候要注意路径。
a.c b.c 中要这样写:#include "../c/c.h"

a.c 里直接定义全局 int status

b.c 里直接 extern int status

不用管头文件

有几个可能
1 没有正确的完成c.h
先判断有没有c.h这个都文件 如果没有就定义它
#ifndef 。。。
#defined 。。。
#endif
2.没有把b.c函数用到的a.c里函数的数据结构写到头文件里面去
3.b.c函数里面要要引入头文件。