C++ 这是什么#在一个头文件中使用多个未初始化的数组来定义?

C++ 这是什么#在一个头文件中使用多个未初始化的数组来定义?,c++,arrays,C++,Arrays,我在cyanogenmod的一个头文件中看到了以下代码(更改名称以提高可读性): 这是如何工作的?我如何使用这种#define语句 还有,编译器如何能够在不初始化变量的情况下创建数组 这是怎么回事 宏的工作方式是用宏的定义替换宏 如果将其写入源文件: THIS_C 预处理器将替换为: const char CP::a[] = "a"; const char CP::b[] = "b"; 我怎么用呢 如果你想声明这样的变量,那么你可以使用宏来生成这些声明。然而,在这个简单的示例中,不清楚使用宏

我在cyanogenmod的一个头文件中看到了以下代码(更改名称以提高可读性):

这是如何工作的?我如何使用这种#define语句

还有,编译器如何能够在不初始化变量的情况下创建数组

这是怎么回事

宏的工作方式是用宏的定义替换宏

如果将其写入源文件:

THIS_C
预处理器将替换为:

const char CP::a[] = "a";
const char CP::b[] = "b";
我怎么用呢

如果你想声明这样的变量,那么你可以使用宏来生成这些声明。然而,在这个简单的示例中,不清楚使用宏而不是直接编写声明有什么好处(如果有的话)。宏可能只是用来混淆代码,这是不可取的


还有,编译器如何能够在不初始化变量的情况下创建数组

在类定义的上下文中,
这是两个数组静态成员的外部声明。这种声明不需要指定数组的大小,也不能初始化变量。初始化在定义中(我想这就是
这个
扩展到的内容)。

你所说的
#define
语句的“这类”是什么意思?您在这些语句中看到了什么使它们不同于其他
#define
语句?
const char CP::a[] = "a";
const char CP::b[] = "b";