#define get_cmd(cmd) ((cmd >> 16) &= (~( 0x3 << 14))) 扩展到: ((cmd >> 16) &= (~( 0x3 << 14))) 表达式必须是可修改的左值C/C++(137)
时间: 2023-06-16 09:02:51 浏览: 117
ap6212a0_a33_sc3817r_服务器验证通过_bt已经通了_wifi需要修改配置_需要再次验证_20170626_1549.7z
这个错误是因为表达式 ((cmd >> 16) &= (~( 0x3 << 14))) 不是一个可修改的左值。在 C/C++ 中,左值(Lvalue)是可以出现在赋值运算符左边的表达式,可以被赋值的表达式。而右值(Rvalue)是不能被赋值的表达式,只能作为赋值运算符右边的操作数。在这个表达式中, &= 运算符的左边是一个右值,因此不能被修改。
如果你想修改 cmd 变量的值,可以使用下面的代码:
#define get_cmd(cmd) (cmd = ((cmd >> 16) & (~( 0x3 << 14))))
这样,函数会返回 cmd 的值,并且将 cmd 变量的值更新为 ((cmd >> 16) & (~( 0x3 << 14)))。这样就可以修改 cmd 变量的值了。
阅读全文