Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初始化C中由枚举索引的字符串数组_C_Arrays_Enums_Initialization_Designated Initializer - Fatal编程技术网

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

初始化C中由枚举索引的字符串数组,c,arrays,enums,initialization,designated-initializer,C,Arrays,Enums,Initialization,Designated Initializer,我希望在C编程语言中基于枚举生成一个字符串数组。理想情况下,我希望将其声明为常量,因此我希望在编译时声明它,而不是在程序执行期间填充它 例如,假设我有一个枚举: enum example { RED=0, YELLOW, BLUE }; 我想初始化字符串数组,如下所示: array[RED]= "apple"; array[YELLOW] = "school bus"; array[BLUE] = "Ocean"; 有没有一种方法可以将其声明为一个常量,大致如下: const char

我希望在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"
};  

你可以用。太好了!这就是我希望实现的目标。谢谢bunch@BeauR完全没有。不客气。:)