美文网首页
BOOST 预定义宏

BOOST 预定义宏

作者: IT孤独者 | 来源:发表于2018-09-18 14:24 被阅读0次

    为什么单独开一篇这个文章,主要是因为我在学EOSIO的源码,源码中多出使用这些宏定义。

    宏这个让人恨的东西。。。

    如果你学习一门语言,你一定要知道什么是语法,什么是语义,宏这个东西,就是一个重新定义了一套新语法的东西,也就是说,即便你会C++或者C语言语法,也无济于事,这个宏定义出来的是另一套语法规则,所以有些宏的语法和语义是要总结的,你如果你好奇宏是怎么做的,你可以展开看下,不过你会很烦的!!!那就不是给人看的,那是给机器看的!!!

    BOOST_PP_STRINGIZE: stringizes its argument after it has been expanded. 简单说就是现将表达式展开,展开后的内容在转成字符串。
    对于这个宏,说些其他的,这个宏非常有用,他可以展示你宏的替换结果!!!这样你需要看某个宏展开的结果,你可以使用这个宏!!!给一个简单的例子:

    #include <iostream>
    #include <boost/preprocessor.hpp>
    
    #define SUM(n, m) n + m
    
    int main() {
        std::cout << BOOST_PP_STRINGIZE(SUM(1,2)) << std::endl;
        return 0;
    }
    

    运行结果:

    1 + 2
    
    

    BOOST_PP_SEQ_FOR_EACH: 用于将一个序列中参数依次按照指定宏进行展开

    BOOST_PP_SEQ_NIL: 就是一个序列的空占位符

    相关文章

      网友评论

          本文标题:BOOST 预定义宏

          本文链接:https://www.haomeiwen.com/subject/bynunftx.html