c - 为什么 Linux 内核 #define 一个符号作为它自己?

标签 c linux-kernel

在 Linux 内核中,there can be found a line of code在我看来是多余的:

#define __arch_swahb32 __arch_swahb32

这样的成语有什么用?

最佳答案

考虑以下代码:

#ifdef foo
    foo();
#endif

如果你想要像上面这样的代码片段调用函数foo,你需要定义foo。然而,如果你只是

#define foo

然后函数 foo 名称将被替换为空标记,并且第一个片段被预处理为 ();。但是,如果您

#define foo foo

然后第一个片段将按原样预处理为 foo();

关于c - 为什么 Linux 内核 #define 一个符号作为它自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018115/

相关文章:

C 编程打印大负数

linux - systemtap 全局变量分配失败

c - 为什么 kuid_t 和类似的数据类型是 struct 类型?

c - 哪种方法更好?

c - 使用预处理器指令在 C 中定义泛型函数

linux - CPU 亲和性是否在系统调用之间强制执行?

linux - 从/dev/block/mmcblk0 和/dev/block/mmcblk0p1 读取的区别

linux - 修改哪个文件以永久更改/proc/sys 中的值

c - 使用信号量同步共享内存

C 代码陷入无限的 do-while 循环