media-server-代码解析-语法篇-01
创始人
2024-11-11 04:05:03
0

media-server/test/test.cpp at master · ireader/media-server · GitHub

#define RE_REGISTER(name, proto, func) static bool b_##name = Reflector::Instance()->registerFun(#name, proto, &func)
  1. #define RE_REGISTER(name, proto, func): 这是宏定义的开始,RE_REGISTER是宏的名称,nameprotofunc是参数。name是函数的名称,proto是函数的原型字符串,func是函数的指针。

  2. static bool b_##name: 这行代码定义了一个静态布尔变量,其名称由b_后跟宏参数name的值组成。静态变量的作用域限定在定义它的文件内,且在程序的整个生命周期内只被初始化一次。

  3. Reflector::Instance()->registerFun(#name, proto, &func): 这行代码调用一个名为Reflector的单例类的registerFun方法。Reflector::Instance()获取Reflector类的单例实例。registerFun方法接受三个参数:函数名的字符串表示(由#name生成,#name是预处理器字符串化操作符,将宏参数name转换为字符串)、函数原型字符串proto和函数指针&func

  4. #name: 这是预处理器的字符串化操作符,它将宏参数name转换为一个字符串字面量。

整个宏的作用是创建一个静态布尔变量,并尝试使用Reflector单例的registerFun方法注册一个函数。如果函数注册成功,registerFun方法将返回true,否则返回false。这个布尔变量b_##name可以用来检查函数是否成功注册。

#define DEF_FUN_VOID2(name, ...) void name ( __VA_ARGS__ ); \     int t_##name(int argc, char const *argv[]){\         name();return 0;\     } \     RE_REGISTER(name, "void " #name "(" #__VA_ARGS__ ")", t_##name)
  1. #define DEF_FUN_VOID2(name, ...): 这是一个宏定义的开始,DEF_FUN_VOID2是宏的名称,name__VA_ARGS__是参数。name是函数的名称,__VA_ARGS__是预处理器的可变参数宏,用于捕获宏调用时传递的所有其他参数。

  2. void name ( __VA_ARGS__ );: 这行代码定义了一个函数原型,函数名为name,参数列表由__VA_ARGS__确定。

  3. int t_##name(int argc, char const *argv[]){: 这行代码定义了一个测试函数,函数名为t_后跟宏参数name的值。这个测试函数接受命令行参数argcargv

  4. name();: 调用之前定义的函数name

  5. return 0;: 测试函数返回0,表示成功执行。

  6. RE_REGISTER(name, "void " #name "(" #__VA_ARGS__ ")", t_##name): 这行代码调用一个名为RE_REGISTER的宏,用于注册函数。它接受三个参数:函数名name,函数的字符串表示(包括返回类型、函数名和参数列表),以及测试函数的名称。

整个宏的目的是创建一个函数,一个与之对应的测试函数,并将这个函数注册到某个注册表中。

相关内容

热门资讯

2025新版!wepoker怎... 2025新版!wepoker怎么看底牌HHpoker辅助挂是真的吗(本来真的有挂)1、wepoker...
攻略教程!wejoker辅助软... 攻略教程!wejoker辅助软件视频wepoker透视脚本免费下载(本来真的有挂)1、wepoker...
微扑克教程!wepoker正确... 微扑克教程!wepoker正确养号方法德州辅助app安卓版最新版更新内容(其实真的有挂)1、进入游戏...
我来教教你!aapoker透视... 我来教教你!aapoker透视插件HHpoker一直输有挂吗(本来真的有挂)1、aapoker透视插...
切实教程!wepoker好友房... 切实教程!wepoker好友房开挂HHpoker辅助开挂方法(一直真的有挂);1、每一步都需要思考,...
技巧教程!wepoker模拟器... 技巧教程!wepoker模拟器哪个好用AApoker最厉害四个辅助(原来真的有挂);1、游戏颠覆性的...
透明挂教程!!智星德州插件怎么... 透明挂教程!!智星德州插件怎么下载wepoker透视软件多少钱(总是真的有挂)1、全新机制【智星德州...
介绍教程!购买wepoker模... 介绍教程!购买wepoker模拟器大头大菠萝可以开挂吗(就是真的有挂);1、首先打开购买wepoke...
第三方教程!哈糖大菠萝辅助器w... 第三方教程!哈糖大菠萝辅助器wepoker德州作弊辅助挂(都是真的有挂);1、每一步都需要思考,不同...
总结教程!拱趴大菠萝作弊方法w... 总结教程!拱趴大菠萝作弊方法wepoker辅助软件下载(一贯真的有挂);1、这是跨平台的拱趴大菠萝作...