tyf1218405122 发表于 2022-5-17 20:14:41

有关与副作用与序列点的问题

有人可以给我解释下关于序列点吗?
a+=a-=a*a;
a给初值12,在不同的编译器上是不是得到的答案不同,
在devc++上是-264;
我没有其他的编译环境,可以帮我试一下吗?

wp231957 发表于 2022-5-17 20:32:47

这种代码就没必要研究,实际写代码时也要尽量避开类似写法

tyf1218405122 发表于 2022-5-17 20:37:34

wp231957 发表于 2022-5-17 20:32
这种代码就没必要研究,实际写代码时也要尽量避开类似写法

因为有笔试,所以不得不去看这个,{:5_104:}

人造人 发表于 2022-5-17 20:41:22

https://blog.51cto.com/u_9634496/5223759

超级无敌磊果果 发表于 2022-5-17 22:17:39

{:7_146:}

amazed 发表于 2022-5-18 00:44:49

666666666666666666666666

kerln888 发表于 2022-5-18 08:06:22

{:10_249:}{:10_249:}{:10_249:}顶一个!

kerln888 发表于 2022-5-18 08:11:25

{:10_256:}{:10_256:}{:10_256:}{:10_256:}再试试运气,中

wp231957 发表于 2022-5-18 09:26:03

GCC 答案 -264

wp231957 发表于 2022-5-18 10:02:39

本帖最后由 wp231957 于 2022-5-18 10:06 编辑

这东西   GCC是这样计算的
#include <stdio.h>

int main()
{
    int a=12;
    a+=a-=a*a;
    printf("%d\n",a);
    return 0;
}

/*
   这东西   GCC是这样计算的
    mov   dword ptr , 0Ch   //取12
    mov   eax, 1                  
    sub   eax,              //1减 =-11
    mov   edx,
    imul    eax, edx                   //12*-11=-132
    mov   , eax
    mov   eax,
    add   , eax             //-132+-132=-264
*/

胡尔汉 发表于 2022-5-18 18:23:40

学习学习

jhq999 发表于 2022-5-18 19:12:45

论茴字的四种写法{:5_109:}

1050293757 发表于 2022-5-19 11:25:54

{:5_109:}
页: [1]
查看完整版本: 有关与副作用与序列点的问题