“宏的实参”的执行顺序是从左到右还是从右到左?
更新时间2022-05-23 23:03:43
如果是从右到左的话,这两个的打印结果应该都是200 疑惑
我测试了下,你这个又是与编译器有关的(也就是没有标准答案的)
对vc++老式版本及c++ builder.程序的结果的确是100 100
而对于vs2022及新版本的gcc ,结果确是200 100
我记得有位大神说过,编写C/C++程序,尽量不要用产生二义性结果的语法
如在参数中用赋值语句。
看了下生成的汇编,对gcc ,对s1/s2语句,它都是先赋值,所以结果就 200 100 了。