You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCC与CPU类算术运算实验:K&R习题1-13中条件表达式等价替换的有效性问询

GCC与CPU类算术运算实验:K&R习题1-13中条件表达式等价替换的有效性问询

环境:GCC 9.4.0 on Ubuntu 20.04.1

最近重读K&R第二版的时候,碰到了习题1-13——要求打印输入内容里单词长度的直方图。

我突然回忆起,if表达式里的这段判断:

if (nc < MAXWORD)

好像有人说可以替换成:

if (MAXWORD - nc)

我试着推导了下:

nc < MAXWORD
nc - nc < MAXWORD - nc
0 < MAXWORD - nc

但这里我有点懵了——在C语言里,条件判断只要是非零值就会被当作真对吧?那如果nc > MAXWORD的话,MAXWORD - nc就是负数,结果也是非零,那这个if条件就会成立,这和原判断nc < MAXWORD的逻辑完全相反了啊?是不是我哪里推导错了?还是说这种替换有什么前提条件?

备注:内容来源于stack exchange,提问作者Baldur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:48:10