使用二进制格式-0B分配变量会导致ARM Keil uVision出错

使用二进制格式-0B分配变量会导致ARM Keil uVision出错,arm,embedded,cortex-m,keil,armcc,Arm,Embedded,Cortex M,Keil,Armcc,我正在从事一个使用keil uvision版本4.7的TM4C123GH6PM微控制器的项目。当我以二进制格式为变量赋值时,如下所示: unsigned char tmp = 0b11000011; 然后我构建项目,出现以下错误: 期望一个“;” 当我使用0X或Decimal将格式更改为十六进制时,错误消失 Keil uVision中的编译器不支持二进制格式吗?ANSI C没有为二进制文本指定语法。Keil编译器遵循ANSI C标准,其手册通常记录任何偏差或扩展 在这里可以找到前面关于这方面的

我正在从事一个使用keil uvision版本4.7的TM4C123GH6PM微控制器的项目。当我以二进制格式为变量赋值时,如下所示:

unsigned char tmp = 0b11000011;
然后我构建项目,出现以下错误:

期望一个“;”

当我使用0X或Decimal将格式更改为十六进制时,错误消失


Keil uVision中的编译器不支持二进制格式吗?

ANSI C没有为二进制文本指定语法。Keil编译器遵循ANSI C标准,其手册通常记录任何偏差或扩展


在这里可以找到前面关于这方面的讨论

ANSI C没有为二进制文本指定语法。Keil编译器遵循ANSI C标准,其手册通常记录任何偏差或扩展

关于这一点的先前讨论可以在这里找到

Keil Arm v5(ARMCC)编译器不支持二进制文本。但是keilarmv6(ARMCLANG)编译器确实支持二进制文本。Keil MDK v5.12及更高版本提供了Arm v6编译器选项。您可能需要移植一些代码来切换编译器版本()。

Keil Arm v5(ARMCC)编译器不支持二进制文本。但是keilarmv6(ARMCLANG)编译器确实支持二进制文本。Keil MDK v5.12及更高版本提供了Arm v6编译器选项。您可能需要移植一些代码以切换编译器版本()。

打开“目标选项”-->切换到“C/C++”选项卡-->在“杂项控制”文本框中添加
--gnu

inta=0b101010这样的代码编译,没有错误

我正在使用MDK 5.18和ARMCC V5.06更新1(build 61)

打开“目标选项”->切换到“C/C++”选项卡-->在“杂项控制”文本框中添加
--gnu

inta=0b101010这样的代码编译,没有错误


我正在使用MDK 5.18和ARMCC V5.06更新1(build 61)

Keil文档说明了什么?Keil文档说明了什么?感谢您的澄清。ARMCC编译器似乎没有使用扩展来支持二进制格式。感谢您的澄清。似乎ARMCC编译器没有使用扩展来支持二进制格式。