Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么C编译器不会';你不接受这个有条件的任务吗?_C_Iar - Fatal编程技术网

为什么C编译器不会';你不接受这个有条件的任务吗?

为什么C编译器不会';你不接受这个有条件的任务吗?,c,iar,C,Iar,我想知道为什么二进制数不能与位运算符一起使用 //works msgSize = (*(msgbody+1) & 0x80)?*(msgbody+5):*(msgbody+3); //doesn't compile msgSize = (*(msgbody+1) & 0b10000000)?*(msgbody+5):*(msgbody+3); C语言不支持二进制文字;如果它们可用,它们就是一个扩展。我建议您的编译器发出错误,因为它无法识别二进制文本0b10000000。因

我想知道为什么二进制数不能与位运算符一起使用

//works
msgSize = (*(msgbody+1) & 0x80)?*(msgbody+5):*(msgbody+3); 

//doesn't compile
msgSize = (*(msgbody+1) & 0b10000000)?*(msgbody+5):*(msgbody+3); 

C语言不支持二进制文字;如果它们可用,它们就是一个扩展。我建议您的编译器发出错误,因为它无法识别二进制文本
0b10000000
。因此,编译器可能也会在这方面发出错误:

int main(void) {
    int msgSize = 0b10000000;
    return 0;
}

我建议使用
0x80
1我想您是在用gcc编程。。。C没有二进制文本。@modifiablelvalue您是第一个:)我正在使用IAR(不确定它使用什么编译器)。二进制文字与ObjC.unrelated的叮当设置配合得很好。SSCCE可能看起来像。正如您从我的SSCCE中看到的,C中没有二进制文字。请将其作为答案。我会记下来的。我的错误代码看起来不同。我猜IAR不是基于GCC的。可能是