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是宏的名称,name、proto和func是参数。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的值。这个测试函数接受命令行参数argc和argv。

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

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

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

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

相关内容

热门资讯

玩家必知教程!!浙江游戏大厅透... 您好,浙江游戏大厅这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款...
免费测试版开挂脚本!KELE多... 免费测试版开挂脚本!KELE多功能开挂脚本,KELE切实存在有开挂脚本KELE辅助器是一种具有地方特...
新手必备!凯旋麻将开挂脚本软件... 新手必备!凯旋麻将开挂脚本软件工具,凯旋麻将一直有开挂曝光APP(有挂攻略);凯旋麻将简单的透视挂控...
技巧知识分享外挂app!胡乐竞... 技巧知识分享外挂app!胡乐竞技多功能外挂app,胡乐竞技一直真的有外挂app1、很好的工具软件,可...
重大来袭!上游炸金花辅助器脚本... 重大来袭!上游炸金花辅助器脚本软件工具,上游炸金花最初有辅助器科普APP(果真有挂);上游炸金花是一...
技术分享辅助器工具!微乐江西麻... 技术分享辅助器工具!微乐江西麻将多功能辅助器工具,微乐江西麻将确实真的是有辅助器工具1、完成微乐江西...
实测教程!湖北雅苑麻将辅助挂脚... 实测教程!湖北雅苑麻将辅助挂脚本软件工具,湖北雅苑麻将起初是真的有辅助挂分享APP(有挂工具)是一款...
盘点几款外挂软件!大宝麻将多功... 盘点几款外挂软件!大宝麻将多功能外挂软件,大宝麻将原来存在有外挂软件大宝麻将脚本下载中分为三种模型:...
AI教程!微乐四川麻将辅助挂脚... AI教程!微乐四川麻将辅助挂脚本软件工具,微乐四川麻将果然有辅助挂分享APP(真实有挂);一、微乐四...
专业讨论辅助器技巧!开心娱乐多... 专业讨论辅助器技巧!开心娱乐多功能辅助器技巧,开心娱乐一贯真的是有辅助器技巧1、下载好开心娱乐透视辅...