- else:通常与if进行搭配使用
-
if语句
- if只会判断一次,判断完后会进入相对应的分支体执行当中的代码,if会产生一个cmp指令,cmp指令会进行一个减法运算来进行比较,它的结果将会影响到EFL(标志寄存器)
- if语句也是顺序执行,只是它会变成汇编代码,会包含一个j系的指令通过EFL(标志寄存器)来判断是否跳转。
例如:
int main()
{
int x =30;
x = x-100;
if(x<100)
{
printf("Hello World\n");
}
return 0;
}
此例代码中,cmp指令会拿两个参数进行比较(cmp指令和sub指令做的事情相同,但sub会保存值,cmp不会保存值,cmp会直接改写EFL),得到结果为负数,将EFL中的SF位(符号位)置1,j系指令官方定义大于等于0时跳转,此时x为负数,SF为1,当SF为0时才会跳转,结果将会输出“Hello world”
-
EFL(标志寄存器)
EFL(标志寄存器)中的值可以认为是没有含义的,它的含义体现在标志位,它总共有32个位,每个位都有特定的含义。
-
EOF常量
代表整体的结束,被定义在stdio.h中。
-
stdin
stdin是标准键盘输入流,定义在stdio.h中。
-
fflush函数
fflush函数需要传递一个流,将里的数据清空掉,达到清空缓冲区的效果。