IAR 8.40使用二进制字面量定义枚举出现Error[Pe067]报错问题
IAR 8.40下0b开头二进制字面量编译报错问题解答
报错原因
0b前缀的二进制整数字面量不属于C99及更早版本的C语言标准规范,它最初是GCC、Clang等编译器推出的非标准扩展特性,直到2022年发布的C23标准才被正式纳入官方语法。
IAR EWARM 8.40默认采用C99标准进行编译,且默认关闭GNU兼容扩展,因此无法识别0b前缀的字面量写法,将其判定为非法符号,最终抛出语法错误。
配置IAR支持二进制字面量的方法
你可以通过修改编译配置解决该问题,可选方案如下:
- 开启GNU扩展兼容:打开工程选项,依次进入
General Options→Language标签页,将C dialect下拉项设置为GNU extensions,保存后重新编译即可识别0b前缀的二进制字面量。 - 升级C标准:如果你的IAR版本支持C23标准,可将
C dialect设置为对应C23选项,即可原生支持二进制字面量语法。
内容的提问来源于stack exchange,提问作者Dmitry Groker
相关产品推荐
相关产品推荐

