以下宏出现在 include/linux/kernel.h 中
#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })
Run Code Online (Sandbox Code Playgroud)
我不明白第二个 & 应用于 __here 会做什么。第一个获取本地标签的地址,但是第二个呢?
第二个&in&&是让 GCC 将名称查找为标签而不是变量所必需的。例如
foo: ;
int foo;
void *p1 = &&foo;
void *p2 = &foo;
Run Code Online (Sandbox Code Playgroud)
第二个初始化器引用 int 变量。
| 归档时间: |
|
| 查看次数: |
825 次 |
| 最近记录: |