是否可以使用编译指示覆盖C中的枚举基类型?我所知道的是我们可以设置编译器指令来将枚举基类型设置为char,int,long。但是有没有其他方法在C语言的代码中设置枚举基类型?对于C ++,我发现像typedef enum这样的编译指示:可以使用unsigned char ..但是C的情况是什么?
答案 0 :(得分:2)
C语言标准没有定义各种#pragma扩展的功能。因此,无法按照C进行此操作。
如果您有一个特定的编译器需要这样做,一些专门的嵌入式系统目标编译器确实提供了这样的功能。您最好阅读该编译器的文档以获得相关指导。
但是我不会建议在嵌入式代码中实例化枚举,这对你注意到的底层类型提供了很少的控制,因此对于你可能想要针对某个特定平台的嵌入式代码是不可预测的。
相反,通过所有方法定义枚举类型,而不是实例化它们只是创建所选整数类型的变量,并将它们与枚举值文字进行分配和比较。