我用 gcc 在没有任何优化的条件下编译了一下。

不过 GNU 用的是 AT&T 的语法,和 intel 语法稍微有点区别。

主要是 mov a,b 是指把 a 存入 b。其它的在这里好像没体现。

这个是用三目运算符的。明显比你的那个要好一些。

401428:    c7 44 24 0c 01 00 00     movl   $0x1,0xc(%esp)

40142f:    00

401430:    c7 44 24 08 02 00 00     movl   $0x2,0x8(%esp)

401437:    00

401438:    8b 54 24 0c              mov    0xc(%esp),%edx

40143c:    8b 44 24 08              mov    0x8(%esp),%eax

401440:    39 d0                    cmp    %edx,%eax

401442:    7d 02                    jge    401446 <_main>

401444:    89 d0                    mov    %edx,%eax

401446:    89 44 24 04              mov    %eax,0x4(%esp)

40144a:    b8 00 00 00 00           mov    $0x0,%eax

40144f:    c9                       leave

401450:    c3                       ret

401451:    90                       nop

401452:    90                       nop

401453:    90                       nop

...

下面是用 if else 的。这个和你那第二个没有任何区别。

401428:    c7 44 24 0c 01 00 00     movl   $0x1,0xc(%esp)

40142f:    00

401430:    c7 44 24 08 02 00 00     movl   $0x2,0x8(%esp)

401437:    00

401438:    8b 44 24 0c              mov    0xc(%esp),%eax

40143c:    3b 44 24 08              cmp    0x8(%esp),%eax

401440:    7e 0a                    jle    40144c <_main>

401442:    8b 44 24 0c              mov    0xc(%esp),%eax

401446:    89 44 24 04              mov    %eax,0x4(%esp)

40144a:    eb 08                    jmp    401454 <_main>

40144c:    8b 44 24 08              mov    0x8(%esp),%eax

401450:    89 44 24 04              mov    %eax,0x4(%esp)

401454:    b8 00 00 00 00           mov    $0x0,%eax

401459:    c9                       leave

40145a:    c3                       ret

40145b:    90                       nop

...

三目运算符c语言吗,看看三目运算符?:到底是怎么回事相关推荐

  1. c语言三目运算符_C语言中的三目运算符是啥?有何用处?

    一般来说,C语言中的三目运算符为a?b:c即有三个参与运算的量. 由条件运算符组成条件表达式的一般形式为:表达式1? 表达式2:表达式3求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达 ...

  2. C语言中的三目运算符是啥?有何用处?

    一般来说,C语言中的三目运算符为a?b:c即有三个参与运算的量. 由条件运算符组成条件表达式的一般形式为: 表达式1? 表达式2:表达式3 求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件 ...

  3. c语言中的二目运算符,C语言中的三目运算符是什么

    C语言中的三目运算符是:"?:".三目运算符连接三个对象,是C语言中唯一一个三目运算符,又称为条件运算符.它的一般形式是:[表达式a?表达式b:表达式c]. C语言中的三目运算符是 ...

  4. c语言中的三目运算符是什么意思,C语言中的三目运算符是什么

    C语言中的三目运算符是:"?:".三目运算符连接三个对象,是C语言中唯一一个三目运算符,又称为条件运算符.它的一般形式是:[表达式a?表达式b:表达式c]. C语言中的三目运算符是 ...

  5. 张一鸣批评的互联网“语言腐败”,危害到底有多大?

    张一鸣批评的互联网"语言腐败",危害到底有多大? https://www.toutiao.com/i6945842048234701325/?tt_from=weixin& ...

  6. python到底是啥_Python语言中的__init__到底是干什么的?

    本文主要向大家介绍了Python语言中的__init__到底是干什么的?通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 看到Python中有个函数名比较奇特,__init__我知道 ...

  7. C语言开发里指针到底快还是不快?(底层汇编解释)

    C语言开发里指针到底快还是不快? 答:不快,甚至比一般变量要慢! 近日我能看到网上很多人说指针快,我非常纳闷,因为我在学习汇编和cpu底层架构时去翻译过c语言的一些指针代码,给我的答案是:指针从来不快 ...

  8. c语言列车调度 栈,这个用栈调度火车的程序到底是怎么回事?

    这个用栈调度火车的程序到底是怎么回事? 下面是一个用栈来实现火车调度的程序,其中,in代表初始的车列顺序,transter代表用来调度的火车轨,out代表调度后的火车轨,程序功能如下,如果in中车列顺 ...

  9. CAS到底是怎么回事

    CAS到底是怎么回事 为什么需要CAS 如何实现CAS 关于CAS和ABA 关于应用层的锁和CPU的锁的关系 参考 为什么需要CAS CAS全称为Compare And Set(比较并交换) 对于现代 ...

最新文章

  1. 1. 训练集、开发集、测试集(Train/Dev/Test sets)
  2. 视觉人工智能市场格局初成型,国内企业占半壁江山
  3. C++——友元 friend
  4. [zz]Ubuntu建立本地源实用案例
  5. Fastai-数据准备
  6. Akka Notes –演员记录和测试
  7. 请编写一个php程序,(笔试题)php练习笔试题(一) 编写程序(请任选两题)
  8. windows下使用DOS命令删除大文件
  9. linux系统如何禁用网卡,Linux 中如何启用和禁用网卡?
  10. python Web开发你要理解的WSGI uwsgi详解
  11. vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
  12. java获取不重复随机数_java实现生成不重复的随机数,可循环利用
  13. Java中System.getProperty()的作用及使用
  14. pc模仿移动端滚动条样式,好看就对了
  15. a标签去掉下划线,html,超链接去掉下划线
  16. 【Kind2(基于SMT的自动模型检查器)学习笔记】基本语法
  17. 前端加密 后端Java解密
  18. TCP报文发送的那些事 1
  19. Mac下brew及brew-cask安装使用
  20. Web大学生网页作业成品 基于HTML+CSS+JavaScript (刘德华9页 )

热门文章

  1. 在SQL Server中导入和使用CSV文件
  2. ssma5.3_使用SSMA v7.1 for Oracle迁移到SQL Server
  3. sql azure 语法_Azure SQL –弹性作业代理
  4. tf.nn.sigmoid_cross_entropy_with_logits 分类
  5. python面试题No6
  6. Android 获取地理位置信息 封装好了 直接用
  7. eclipse查找指定行数
  8. 线程1-线程常用方法
  9. 常见MIME类型例表
  10. Colidity-- Dominator