【问题标题】:Initialize array of strings indexed by enumeration in C [duplicate]在C中初始化由枚举索引的字符串数组[重复]
【发布时间】:2019-10-11 13:15:27
【问题描述】:

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

【问题讨论】:

标签: c arrays enums initialization designated-initializer


【解决方案1】:

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

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

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

【讨论】:

  • 完美!这就是我希望实现的目标。非常感谢
  • @BeauR 完全没有。不客气。:)
猜你喜欢
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多