宏初始化不清楚
我不清楚以下代码
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在此宏定义中,
nsproxy
是宏参数的名称。在宏替换列表(
#define INIT_NSPROXY(nsproxy)
部分之后的行中的所有内容)中,出现nsproxy
标记的任何位置,它都会被传递的任何参数替换。在本例中,将传递参数
init_nsproxy
。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 thensproxy
token appears, it is replaced by whatever argument is passed.In this case, the argument
init_nsproxy
is being passed.在这种形式中,您可以将宏视为函数调用。
函数名称为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.