循环枚举中的每个项目

fre*_*nix 4 c

是否可以循环并提取枚举中每个项目的值,例如:

enum {
   item 1 = 1,
   item 2 = 7,
   item 3 = 'B'
} items;
Run Code Online (Sandbox Code Playgroud)

要说一个阵列.可能?

mgi*_*uca 8

你的意思是为枚举的每个值构造一个包含一个元素的数组吗?这样你最终得到一个数组{1, 7, 'B'}

不可能.枚举只不过是一堆编译时常量.在运行时,它们实际上只是整数.编译器甚至不检查以确保您在枚举变量中放置有效值(您可以将值5放在那里并且不介意).因此它不知道运行时可能的枚举值是什么.

当然,如果您的枚举是连续的(例如,您已为值0,1,2和3定义了枚举),那么您可以使用for循环执行此操作.