C使用包含在文件中定义的变量

时间:2013-12-08 01:14:36

标签: c++ c include scope

我目前正在使用Google搜索,但我不知道如何说出来。我怀疑有人会指出我一个重复的问题。但是......如果我有这样的文件

parent.h:

...
include "child.h";
int foo;
...

和以下源文件,通过其头文件在上面调用:

child.c:

int display ()
{
    printf ( "%d\n", foo );
}

现在这是一个简化的例子,目前我正在使用C ++而我正在创建一个对象,该对象调用另一个对象的方法,如父文件中声明的foo。当然我收到以下错误:

error: ‘foo’ was not declared in this scope

有没有办法解决这个范围问题,还是我必须将foo作为参数传递?

2 个答案:

答案 0 :(得分:3)

我相信您正在寻找extern

编辑:

添加一些初始linkage

答案 1 :(得分:1)

通常,变量存在于源文件中......

  

parent.c

int foo = 0;

...并且在头文件中extern ...

  

parent.h

extern int foo;

通过这种方式,#include parent.h extern foo {{1}} {