宏初始化不清楚

发布于 2024-10-21 18:22:39 字数 589 浏览 4 评论 0原文

我不清楚以下代码

struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);

,可以在这里看到 http://lxr.free-electrons.com /source/kernel/nsproxy.c?v=2.6.28#L27

我无法理解此处宏 INIT_NSPROXY 的使用 http://lxr.free-electrons .com/source/include/linux/init_task.h?v=2.6.28#L53

该宏定义为使用 INIT_NSPROXY(nsproxy) 但当上面的代码片段初始化时,它使用 INIT_NSPROXY(init_nsproxy) 如何这可能吗?

I am not clear with following code

struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy);

this can be seen here
http://lxr.free-electrons.com/source/kernel/nsproxy.c?v=2.6.28#L27

I am not able to understand the use of macro INIT_NSPROXY which is here
http://lxr.free-electrons.com/source/include/linux/init_task.h?v=2.6.28#L53

the macro is defined to use INIT_NSPROXY(nsproxy) but when the above snippet is initializing then it is using INIT_NSPROXY(init_nsproxy) how is that possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

懒的傷心 2024-10-28 18:22:39
#define INIT_NSPROXY(nsproxy) // etc.

在此宏定义中,nsproxy 是宏参数的名称。

在宏替换列表(#define INIT_NSPROXY(nsproxy) 部分之后的行中的所有内容)中,出现 nsproxy 标记的任何位置,它都会被传递的任何参数替换。

在本例中,将传递参数 init_nsproxy

#define INIT_NSPROXY(nsproxy) // etc.

In this macro definition, nsproxy is the name of the parameter to the macro.

In the macro replacement list (everything on the line after the #define INIT_NSPROXY(nsproxy) part), anywhere that the nsproxy token appears, it is replaced by whatever argument is passed.

In this case, the argument init_nsproxy is being passed.

扶醉桌前 2024-10-28 18:22:39

在这种形式中,您可以将宏视为函数调用。
函数名称为INIT_NSPROXY,参数名称为nsproxy。
在 INIT_NSPROXY 宏内部,nsproxy 被传递给它的任何标识符替换。

In this form, you can think of the macro as a function call.
The name of the function is INIT_NSPROXY, and the name of the parameter is nsproxy.
Inside the INIT_NSPROXY macro, nsproxy is replaced by whatever identifier was passed to it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文