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,函数的字符串表示(包括返回类型、函数名和参数列表),以及测试函数的名称。

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

相关内容

热门资讯

透视脚本!hhpoker软件可... 透视脚本!hhpoker软件可以玩,心悦填大坑技巧分析器,攻略方法(有挂辅助)-哔哩哔哩1、完成心悦...
透视黑科技!约局吧游戏挂(透视... 透视黑科技!约局吧游戏挂(透视)底牌透视挂辅助插件(可靠开挂辅助必备教程)-哔哩哔哩;1、【约局吧游...
黑科技辅助!wpk数据清零(智... 黑科技辅助!wpk数据清零(智能ai辅助工具)软件透明挂黑科技(其实是有挂)-哔哩哔哩;1、完成wp...
5分钟了解!哈糖大菠萝可以拿好... 您好:哈糖大菠萝可以拿好牌这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
透视科技!悦扑克脚本,丽水茶苑... 透视科技!悦扑克脚本,丽水茶苑脚本,科技教程(有挂教程)-哔哩哔哩1、丽水茶苑脚本透视辅助简单,丽水...
透视好友!淘宝买wepoker... 透视好友!淘宝买wepoker透视有用(透视)底牌透视挂辅助插件(可靠开挂辅助曝光教程)-哔哩哔哩;...
黑科技辅助!wepower外挂... 您好:wepower外挂检测方法这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
五分钟了解!兴动麻将能胜率(辅... 五分钟了解!兴动麻将能胜率(辅助挂)都是真的有挂(专业辅助微扑克教程)-哔哩哔哩;五分钟了解!兴动麻...
透视挂透视!sohoo开挂辅助... 透视挂透视!sohoo开挂辅助,腾威互娱 辅助工具,2025新版(有挂方法)-哔哩哔哩1、腾威互娱 ...
透视神器!aapoker辅助工... 透视神器!aapoker辅助工具安全(透视)底牌透视挂辅助器(可靠开挂辅助高科技教程)-哔哩哔哩;相...