作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用具有32K内存的嵌入式设备,使用IAR EWARM v6.30以纯C语言编写。
为了使代码更具可读性,我想定义一些枚举类型,例如
{RIGHT_BUTTON, CENTER_BUTTON, LEFT_BUTTON}
最佳答案
在完全兼容的ISO C中,枚举常量的大小和类型为signed int
。一些嵌入式系统编译器故意不将其作为优化或扩展。
在ISO C ++中,“枚举的基础类型是整数类型,可以表示枚举中定义的所有枚举器值。”,因此,编译器可以自由使用最小的类型,大多数可以,但不必这样做。所以。
对于您的情况(IAR EWARM),该手册明确指出:
不需要任何选项,实际上,您需要使用--enum_is_int
强制执行兼容行为。其他编译器的行为可能有所不同,或者具有不同的扩展名,实用说明或控制此选项的选项。通常在文档中定义此类内容。
关于c - 定义枚举类型是否有大量的内存标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006700/
我是一名优秀的程序员,十分优秀!