验证代码中添加空do while语句对编译产生的影响
当方法中没有do while时
-( int )test:( int )a
{
int b = 0;
return a+b;
}
汇编如下:
当方法中有空的do while时
-( int )test:( int )a
{
int b = 0;
do {
} while ( NO );
return a+b;
}
汇编如下:
当方法中有do while(true)时
-( int )test:( int )a
{
int b = 0;
do {
} while ( YES );
return a+b;
}
汇编如下:
结论:代码中添加空的do while循环是起不到混淆作用的,可能是gcc编译器对其进行了优化。
而裸汇编可能会对汇编产生影响,有时间的话可以去验证一下。