在 C 头文件中声明全局字符数组
Declaring global char array in C header file
我有一个包含所有字符串命令的头文件,如下所示:
const char AT_RSSI[] = "ATRSSI\r\n";
const char AT_DEVICE_SECURITY[] = "ATDS";
但是,使用这种方法,每个字符语句的末尾都附加了 \0,这很不方便,因为我每次使用 sizeof() 方法时都需要删除 1 个字符
还有一个解决办法就是使用
//header file
extern const char *AT_RSSI;
//some.c
const char *AT_RSSI = "ATRSSI\r\n";
并在其中一个 .c 文件中声明它,但我不喜欢这种方法。我希望我所有的常量变量都在头文件中声明
我可以知道如何声明一个常量全局变量字符数组,它可以包含在各种 .c 文件中吗?
第一段代码的问题是,您将 definitions 放在 header 文件中,如果 header 文件被多个 .c
个文件包含。
一般来说,只将定义放在.c
文件中,将它们的声明放在header.
也就是说,将其放入 .c
文件中:
const char AT_DEVICE_SECURITY[] = "ATDS";
header 中的这个:
extern const char AT_DEVICE_SECURITY[];
我有一个包含所有字符串命令的头文件,如下所示:
const char AT_RSSI[] = "ATRSSI\r\n";
const char AT_DEVICE_SECURITY[] = "ATDS";
但是,使用这种方法,每个字符语句的末尾都附加了 \0,这很不方便,因为我每次使用 sizeof() 方法时都需要删除 1 个字符
还有一个解决办法就是使用
//header file
extern const char *AT_RSSI;
//some.c
const char *AT_RSSI = "ATRSSI\r\n";
并在其中一个 .c 文件中声明它,但我不喜欢这种方法。我希望我所有的常量变量都在头文件中声明
我可以知道如何声明一个常量全局变量字符数组,它可以包含在各种 .c 文件中吗?
第一段代码的问题是,您将 definitions 放在 header 文件中,如果 header 文件被多个 .c
个文件包含。
一般来说,只将定义放在.c
文件中,将它们的声明放在header.
也就是说,将其放入 .c
文件中:
const char AT_DEVICE_SECURITY[] = "ATDS";
header 中的这个:
extern const char AT_DEVICE_SECURITY[];