考虑以下语句:
据我所知,C++编译器不执行这种操作,因为它可能会产生副作用。但这些是内置类型。
C a, b; //C contains c1, c2 and c3 all integers
if(a.c1==b.c1 && a.c2 == b.c2) {
a.c3=b.c3;
}
这个语句将被优化为以下内容:
if(a.c1 == b.c1) {
if(a.c2 == b.c2) {
a.c3=b.c3;
}
}
据我所知,C++编译器不执行这种操作,因为它可能会产生副作用。但这些是内置类型。
- 标准中是否有相关内容?
- 如果这是编译器特定的,主流编译器(如MS、GNU、Intel)是否都在执行此操作?