搞懂本质
直接看到了sizeof,然后去看看他里面的东西,就给他一个具体的数字,说明他是一个符号而已
sizeof 就是一个符号,编译器一看到他,就知道是这个符号了,然后给他设置内部的数而已
int c = ++a
bp指针如果加的话,就是找参数,如果减法,就是找到局部变量;
init c = ++a + ++a
看看这句话,结果39
编译器不一样,这就话有可能结果也不一样,实际开发中不要这样写,不安全;
访问结构体属性
比较条件结果表
符号寄存器,存放比较的结果,修改相应的二进制位
Jietu20170520-121738.jpg
switch和if的效率问题
if (a > 0),bp-4,局部变量
8086架构有16个寄存器;
ARM架构有37个寄存器;6个特定的寄存器,其他都叫通用寄存器
ARM寄存器.gif
EFLAGS标志寄存器图示01.png
switch函数的反汇编1
switch函数的反汇编2
if语句
在这种基本比较中,我们认为是相同的,但是其他情况就不应了;
switch123
switch1-7
开辟空间,放指令,将来拿来就用,然后保存,cmp的结果都放到哪里,还有要去执行的代码放到内存中,保存内存地址,将来直接用,拿空间换时间;
编译器的优化-有些优化了时间,有些最大优化,有些尽可能优化。。。