请教这是C++的bug还是芯片的bug?

在一段代码中,尽管myCallState的值为0,而CALL_STATE_ESTABLISHED宏定义为5,但for循环内的条件myCallState==CALL_STATE_ESTABLISHED依然为真,导致了意料之外的结果。问题出现在SSD202芯片上,开发者寻求解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码很简单

for(;myCallState==CALL_STATE_ESTABLISHED;)
    {
        sleep(1);
       
        printf("H264 in list  %d     [%d:%d] \n",listSize,myCallState,CALL_STATE_ESTABLISHED);

    }

实际运行结果

现在诡异的事情发生了,

参与判断的两个条件

myCallState是0

CALL_STATE_ESTABLISHED是5,

那为什么for里面的 myCallState==CALL_STATE_ESTABLISHED 是真呢?

CALL_STATE_ESTABLISHED 是宏 ,为5

myCallState是int型变量

运行的芯片是SSD202,

这是什么鬼?

有大神指点下吗

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值