c - 在 C 头文件中声明全局字符数组

标签 c global-variables

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

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

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

还有一种解决方法是使用

//header file
extern const char *AT_RSSI;

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

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

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

最佳答案

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

一般来说,只在 .c 中放置定义文件,并将它们的声明放在标题中。

也就是说,把它放在 .c 中文件:

const char AT_DEVICE_SECURITY[] = "ATDS";

标题中的这个:

extern const char AT_DEVICE_SECURITY[];

关于c - 在 C 头文件中声明全局字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30745892/

相关文章:

android - Kotlin 设置全局变量的值

python - 如何在 cython 中声明一个全局 numpy.ndarray?

PHP 全局关键字解决方法

c - 这个问题有什么算法方法吗?

c - 删除按键延迟

c - 在头文件中包含头文件?

c - 'struct x' 在参数列表中声明

java - 数组和类的空指针异常 - Java

c++ - 在 printf 上输出

swift - 更改静态变量