TI中文支持网
TI专业的中文技术问题搜集分享网站

code computer studio (全局常量)编译问题

我在一个.h文件里面使用const定义了一个常量

const unsigned char MAX_temp = 50;

并且在下面的数组初始化语句里面使用了它

unsigned int GET_TEMP_value[MAX_temp] = {0};

然后编译器给出了这样的提示

Description Resource Path Location Type
#2170-D use of a const variable in a constant expression is nonstandard in C user_GLOBAL_VARIABLE.h /TEST5 line 23 C/C++ Problem

而当我试图使用类似于

#define MAX_ADC 20

或者类似于

#ifndef MAX_temp
#define MAX_temp 20
#endif

这样的定义时,

如果不包含这个.h文件,编译器会报错,提示找不到定义

Description Resource Path Location Type
#20 identifier "MAX_temp" is undefined user_init.c /TEST5 line 66 C/C++ Problem

而如果包含了这个文件,编译器会将这个.h文件里面所有剩下的变量都报错(重复定义错误);

请问各位,这个问题应该如何解决呢?

Eric Ma:

你可以直接在源文件中

#define MAX_temp 20

然后接着就定义unsigned int GET_TEMP_value[MAX_temp] = {0};

其他源文件只要声明uint16_t GET_TEMP_value[]即可。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » code computer studio (全局常量)编译问题
分享到: 更多 (0)