首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么 2<3?:100 的结果是 1?

Linux内核里面很多这样的写法

特别是这个代码

讲真,这样的代码在我们这里是会被叼的,好好的代码你不写,你非得写一个似懂非懂的意思。

但是你有没有想过,如果等于,到底是多少呢?

我们先看下这个代码的汇编程序

汇编

编译脚本

代码输出

给关键的汇编代码加上注释

我们稍微修改下代码,然后再看看汇编

代码输出

通过比较发现汇编代码,只有一行不一样

关键的差异,就是在比较代码的位置,以比较结果看是否执行 setl %al

这也是为什么下面的代码结果是1的原因

我使用的GCC版本是

- EOF -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230208A02NVF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券