初始化由 C 中的枚举索引的字符串数组

Initialize array of strings indexed by enumeration in C

我希望在 C 编程语言中创建一个基于枚举的字符串数组。理想情况下我想将其声明为常量,因此我想在编译时声明它而不是在我的程序执行期间填充它。

举个例子,假设我有一个枚举:

enum example
{
 RED=0,
 YELLOW,
 BLUE
};

我想这样初始化一个字符串数组:

array[RED]= "apple";
array[YELLOW] = "school bus";
array[BLUE] = "Ocean";

有没有一种方法可以按照以下方式将其声明为常量:

const char array[3][12] = 
{
 array[RED]= "apple", 
 array[YELLOW] = "school bus", 
 array[BLUE] = "Ocean"
}; 

不必像这样填写字符串数组:

const char array[3][12] = {"apple", "school bus", "Ocean"};

您可以通过以下方式进行操作

enum example {  RED = 0,  YELLOW,  BLUE };

const char array[3][12] = 
{
    [RED] = "apple", 
    [YELLOW] = "school bus", 
    [BLUE] = "Ocean"
};