1.编译器优化程序代码段
1 2 3 4
| #pragma push #pragma O0
#pragma pop
|
1.1.代码优化一: 系统设置优化等级为armcc -O1
,如果此时想要一个函数不进行优化或者优化成其他级别,处理如下function2
、function3
而其他函数保持armcc
优化等级
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| void function1(void){ ... // 执行O1优化(来自armcc-O1) }
#pragma push #pragma O0 void function2(void){ // 不执行优化 ... } #pragma pop
#pragma push #pragma O3 void function3(void){ // 在O3条件下优化 ... } #pragma pop
void function4(void){ ... // 执行O1优化(来自armcc-O1) }
|
1.2.代码优化二:系统设置优化等级为armcc -O1
,但是部分代码想要设置 O3
优先级
1 2 3 4 5 6 7 8 9 10 11 12
| void function1(void){ ... // 执行O1优化(来自armcc-O1) }
#pragma O3 //从该位置设置后,直到该文件结束 void function2(void){ ... // 执行自己设置的 O3 编译优化 }
void function3(void){ ... // 执行自己设置的 O3 编译优化 }
|
2.通过编译器设置字节对齐操作
有两种操作:
方法一:
方法二:
-------------本文结束 感谢阅读-------------