在汇编文件中使用#define 函数/内联函数是否有任何限制。
我提到了 bsd 内核,其中定义了两种不同的实现。一个是宏,另一个是普通功能(两者都是相同的功能)
在c文件中splx被定义为function, http ://ftp.hu.freebsd.org/pub/netbsd/NetBSD-release-4-0/src/sys/arch/arm/omap/omap_intr.c
而在 h 头文件 splx 被定义为宏, http ://ftp.hu.freebsd.org/pub/netbsd/NetBSD-release-4-0/src/sys/arch/arm/omap/omap_intr.h
我的理解是c文件定义用于汇编文件,而宏定义用于包含头文件的所有其他函数。
我想我不清楚为什么组装在这里出现。基本上有两个定义,一个在 c 文件中,另一个在 h 文件中用于 splx。当我在 C 文件中注释掉 splx 定义时,我在汇编文件的编译中遇到了一些错误。(cpu.S)这就是为什么我认为在编译汇编文件时使用函数定义(如在 c 文件中),而宏定义是用于所有其他文件包括 h 文件。
现在我的问题是:为什么汇编文件也不能通过包含头文件来使用宏定义?