strongswan中函数的定义使用了一个叫METHOD的宏,此宏的定义在object.h头文件中给出。

此宏包括3部分。
第一部分是对名为name的函数进行声明。即:
static ret name(union {iface *_public; this;}
__attribute__((transparent_union)), ##__VA_ARGS__);
这里用到了两个关键字,__attribute__和transparent_union。
__attribute__是GCC对C11语法的扩展。使用__attribute__可以指定函数、对象和类型的属性。在《C语言编程魔法书:基于C11标准》中有详细的介绍。
transparent_union是一个属性,该属性附加到联合类型定义之后,指示具有该联合类型的任何函数参数都会以特殊方式处理对该函数的调用。
首先,对应于透明联合类型的参数可以是union中的任何类型; 不需要类型转换。 另外,如果union包含指针类型,则相应的参数可以是空指针常量或void指针表达式; 如果union包含void指针类型,则相应的参数可以是任何指针表达式。 如果union成员
最后
以上就是乐观板栗最近收集整理的关于strongswan--函数定义宏的全部内容,更多相关strongswan--函数定义宏内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复