标题:关于未定义行为的警告
取消只看楼主
fantasyhpu
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2019-6-9
结帖率:100%
已结贴  问题点数:20 回复次数:2 
关于未定义行为的警告
有一个简单的测试代码:
程序代码:
#include "stdio.h"

int main(void)
{

    int i,j;

    i=2;
    j=8;
    j=(i=6)+(j=3);//warning在这一行

    printf("%d %d",i,j);

    return 0;
}

编译时(gcc 8.1.0),出现一个未定义行为的警告:
warning: operation on 'j' may be undefined [-Wsequence-point]
对于出现warning的行:
j=(i=6)+(j=3);

我的理解是,先进行i=6和j=3的赋值运算,然后再计算j=6+3,即j=9。
这一过程很清晰,怎么编译器会抛出关于j的未定义行为warning呢?
搜索更多相关主题的帖子: 未定义 警告 warning int 出现 
2022-05-23 19:14
fantasyhpu
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2019-6-9
得分:0 
回复 3楼 rjsp
讲解的清楚明白,谢谢。
2022-05-24 11:21
fantasyhpu
Rank: 2
等 级:论坛游民
帖 子:7
专家分:14
注 册:2019-6-9
得分:0 
回复 2楼 wp231957
谢谢回复。
2022-05-24 11:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509155-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104187 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved