COMPILER_ABSTRACTION头文件的关键字
在查看某个项目工程的过程中发现底层存在一个.c后缀的汇编文件,一时感兴趣注意到asm关键字,往下走发现了这个头文件。
#if defined ( __CC_ARM )#ifndef __ASM#define __ASM __asm#endif#ifndef __INLINE#define __INLINE __inline#endif#ifndef __WEAK#define __WEAK __weak#endif#ifndef __ALIGN#define __ALIGN(n) __align(n)#endif#ifndef __PACKED#define __PACKED __packed#endif#define GET_SP() __current_sp()#elif......#endif
asm,通常用于嵌入汇编代码 https://zhuanlan.zhihu.com/p/455686605
inline是内联,与代码优化等级相关,他是建议而不是强制。https://blog.csdn.net/huanghui167/article/details/41346663
weak用于解决可能的重定义。https://eureka1024.blog.csdn.net/article/details/81628417
align用于指定对齐。https://biao2488890051.blog.csdn.net/article/details/89525819
packed用于压缩字节对齐现象,提高传输速率使用。https://xiaopengzhen.blog.csdn.net/article/details/90751116
current_sp表示当前的堆栈指针,我们可以在Register视图看到SP。