<分区>
代码:
int a = 0;
a = ++a % 5;
引起警告:
warning: operation on 'a' may be undefined [-Wsequence-point]
a = ++a % 5;
~~^~~~~~~~~
用-Wall
编译时用各种编译器比如gcc
然而这段代码,工作正常吗?
int a = 0;
a = (a + 1) % 5;
为什么这是一个警告,可以安全地忽略它吗?
将其包裹在方括号中似乎并不能使警告消失。
编辑:为澄清起见,我在看到这些警告消息时使用的是 C++17 编译器。