在C头文件中声明全局char数组

时间:2015-06-10 02:04:34

标签: c global-variables

我有一个包含所有字符串命令的头文件,如下所示:

const char AT_RSSI[] = "ATRSSI\r\n";
const char AT_DEVICE_SECURITY[] = "ATDS";

但是,使用这个方法,每个char语句的末尾附加了\ 0,这很不方便,因为我需要删除1个char,每次使用sizeof()方法

还有另一种解决方案是使用

//header file
extern const char *AT_RSSI;

//some.c
const char *AT_RSSI = "ATRSSI\r\n";

并在.c文件中声明它,但我不喜欢这种方法。我希望我的所有常量变量都在头文件中声明

我是否可以知道如何声明一个可以包含在各种 .c 文件中的常量全局变量char数组?

1 个答案:

答案 0 :(得分:4)

第一段代码的问题是,您将定义放在头文件中,如果多个.c文件包含头文件,则会导致多个定义错误

一般情况下,只将定义放在.c文件中,并将其声明放入标题中。

这意味着,将其放在.c文件中:

const char AT_DEVICE_SECURITY[] = "ATDS";

,这在标题中:

extern const char AT_DEVICE_SECURITY[];