·

方法二创建的临时变量也可以优化掉吧,CPU将*i和*j取到两个寄存器中,然后交换地写入内存。即使是出现了内存别名使用的情况,函数执行的结果也是正确的

Replies
3

你说得对,我满脑子都是不优化的场景,想着方法二还有函数调用开销,但实际上三个都可以优化函数也能inline掉,开启-O1后的结果几乎一模一样,现代编译器还是很强大的

哈哈哈,我能请教一下你们说的优化是啥意思吗 sweat_smile (尴尬了);还有就是 开启 -01 又是个啥,求指导 pray

O是optimization的缩写,不是0,MSVC比较奇葩是这样的/O 选项(优化代码) | Microsoft Docs,GCC、Clang都是-