关于Xcode下的汇编指令的优化
Xcode默认情况下在release模式下就会进行优化,而在debug模式下默认是不会优化的
编译器优化的等级的设置,Debug下是没有优化的,也就是说我写什么代码就生成什么样的汇编指令
优化等级五种
当我们选择优化等级为最后一个的时候,写了下面的函数
int main(int argc, char * argv[]) {
int i = 1;
int j = 2;
printf("哈哈");
return 0;
}
汇编指令优化之后的状态,i 和 j这两个局部变量我们没有用到,所以编译器直接就优化了
如果下面我们调用函数没有调用的话,把函数的代码都给优化了,因为这个函数没有调用
int sum(int a,int b)
{
return a+b;
}
int main(int argc, char * argv[]) {
int c = sum(1,2);
printf("哈哈");
return 0;
}
还有一种就是我们通过调用函数,直接把结果返回了,函数给优化了,编译器直接把下面的sum(1,2)给替换成了3,sum函数没有调用,函数编译的时候就知道你的实现代码了,函数是静态的
int sum(int a,int b)
{
return a+b;
}
int main(int argc, char * argv[]) {
int c = sum(1,2);
NSLog(@"%d",c);
return 0;
}