R..*_*R.. 2 c standards gcc lvalue
gcc在赋值错误中给出了无效的左值:
-2[(size_t *)new] = 0;
Run Code Online (Sandbox Code Playgroud)
将代码更改为以下内容使其消失:
((size_t *)new)[-2] = 0;
Run Code Online (Sandbox Code Playgroud)
但据我所知,两者在C中都是100%等效的.在非左值表达式中使用前者没有问题.这只是gcc中的一个错误吗?我用几个版本测试了它并得到了相同的结果.
我真笨.[]
比-
这更紧密地绑定,所以这个表达式实际上是读取索引2并且否定它.
归档时间: |
|
查看次数: |
286 次 |
最近记录: |