C++的判断表达式 <=,!=,<之间有什么区别
这个区别可以忽略,今天看书突然想了一下,做个记录.
下面这段代码中:
for(int i=0;i<8;++i){ } for(int i=0;i!=8;++i){ } for(int i=0;i<=7;++i){ }
硬要说区别, 第二种方法循环,因为会稍微快一点,从底层的角度说, 第二种方法更好的利用了流水线
引用:
C/C++语言的比较运算符反应到汇编层面上效率应该都差不多。我的clang编译出 第一句用了jge 第二句用了je 第三句用了jg 汇编指令要相差也只能相差一两个时钟周期, 倒是SQL里面的< <=之间有比较大的差异
汇编指令JE, JEG有什么不同
一.功能不同
1.JG:大于转移指令
2.JGE:大于或等于转移指令
二.语法不同
1.JG: JG 前>后 Jump if greater
2.JGE: JEG 前>=后 Jump if greater or equal
三.用处不同
1.JG: 用于对比寄存器中两个对象的大小
2.JGE: 用于对比内存中两个对象的大小关系
JE
JE指令是汇编里面的一个跳转指令,功能是在ZF等于0时进行跳转,也就是相等的时候跳转。
如果相等则跳转(指令:JE、外语全称:Jump if Equal) 是汇编语言中的一个条件转移指令
感觉没抓到重点,下次再看吧=_=
参考:
https://bbs.csdn.net/topics/390394771?page=1
https://www.wendadaohang.com/zd/A5GnKKWWW.html