C文件看不到#include头文件中定义的变量

时间:2018-08-28 22:02:26

标签: c global-variables header-files

a.h中,我有

#ifndef A_H
#define A_H 1

const int global_val = 10;

#endif

a.c中,我有

#include "a.h"

int someFunc() {
    return global_val;
}

但是编译器(gcc)在编译error: 'global_int' undeclared时会抛出a.c。当我包含头文件时,怎么可能不声明它?

2 个答案:

答案 0 :(得分:0)

您应该有两个文件。

A.h

  #ifndef A_H
  #define A_H 1

  extern const int global_val;

  #endif

A

  #include "A.h"


  const int global_val = 10;

答案 1 :(得分:-1)

我发现了问题。我删除了所有的.o.gch和可执行文件,并且代码再次开始编译。我的猜测是,预编译的标头(我什至不记得制作过)正在欺骗编译器。

我没有关闭问题,而是决定保留此答案,以免对某人有所帮助。