首页 > 解决方案 > 在 C 中指定用于“枚举”的位数(如果值不合适,则编译错误)

问题描述

不需要便携。只要它适用于一个编译器,我就可以制作一个 ifdef 以仅在该编译器上启用它。我更喜欢 GCC 解决方案,但任何编译器都可以。我正在使用C99。

对于上下文,我试图将一些数据打包成 32 位,而我要打包的字段之一,我想用枚举表示,应该只有 7 位宽。如果我让它大于 7 位,我会丢失其中一个位,所以如果我定义了一个不适合 7 位的枚举值,我想要一个编译器错误。

标签: cgccenumsc99

解决方案


推荐阅读