在读代码过程中经常会看到类似
#ifdef __ASSEMBLY__
#define __PAGE_OFFSET (0xB0000000)
#else
#define __PAGE_OFFSET (0xB0000000UL)
#endif /* __ASSEMBLY__ */
这样的代码。下面解释下它的作用。
__ASSEMBLY__用于汇编和c代码共享的头文件
源程序==》预处理器(cpp)==》编译器(ccl)==》汇编器(as)==》链接器(ld)==》可执行文件
有些定义cc1可以辨认,而as汇编器不能辨认。汇编程序不需要编译器
cpp会根据源文件是否是汇编程序(.s)来选择正确的定义
__ASSEMBLY__就是为了解决这样的问题。