使用道具 举报
Post by zlbruce ((x++)*(x++)) 和 ((++x)*(++x)) 都是是未定义的行为。因为求值顺序不定。
Post by kiron 还有像: #define SQR(x) ((x) * (x)) int fun(int *a) { a+=1; return 1; } .... int i = 1; SQR(fun(&i)); 复制代码 也有危险,因为i被增加了2次的值。调用者可能认为只增加了一次。
本版积分规则 发表回复 回帖后跳转到最后一页