C++预定义宏

C/C++宏体中出现的#,#@,##:

  • #的功能是将其后面的宏参数进行字符串化操作(stringfication),就是对它所引用的宏变量通过替换后在其左右各加上一个双引号

-##被称为连接符(concatenator),用来将两个token连接为一个token。注意这里连接的对象是token就行,而不一定是宏的变量。

举例:

Caffe中Layer的创建:

#define REGISTER_LAYER_CREATOR(type, creator)                                  \  
  static LayerRegisterer<float> g_creator_f_##type(#type, creator<float>);     \  
  static LayerRegisterer<double> g_creator_d_##type(#type, creator<double>)    \

http://blog.csdn.net/langb2014/article/details/50991315

Tips:

如果串长于一行,可以在该行末尾用一反斜杠' /'续行。

http://blog.csdn.net/blaider/article/details/7578141
原文链接: https://www.cnblogs.com/avril/p/6166513.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/245698

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午1:01
下一篇 2023年2月14日 上午1:01

相关推荐