我是靠谱客的博主 矮小冰棍,最近开发中收集的这篇文章主要介绍#运算符和##预算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    “#”也是预处理?可以这样认为。那么怎么用它呢?看看下面的例子。

    #define SQR(X) printf("the square of x is %d.n",((x)*(x))

    如果这样使用宏:SQR(8);的结果呢?

    

         the square of x is 64.

    注意到,引号中的字符x被当作普通文本处理了,而不是当作一个可以被替换的语言符号。

    假如你确实希望在字符串中包含宏参数,那我们就可以使用“#”,他可以把语言符号转化为字符串。

        #define SQR(X) printf("the square of "#x" is %d.n",((x)*(x))

    使用:SQR(8);结果就会变成

        the square of 8 is 64.

    相信你已经学会了#运算符的使用,那么##预算符该怎么使用?

    和”#“运算符一样,”##“运算符可以用于函数宏的替换部分。这个符号可以把两个语言符号组合成单个语言符号。

        #define XNAME(n) x##n

    如果这样使用宏:XNAME(8) 则在预处理的时候展开成:x8

    

    注意:在单一的宏定义中,最多可以出现一次”#“或”##“预处理器操作符。

    与”#“或”##“预处理器操作符相关的计算次序,如果未被指定则会产生问题。为了规避这个问题,在单一的宏定义中只能使用其中一种操作符。

    除非必须,尽量不要使用”#“和”##“。

    以上就是本人在学习过程中的一些经验总结。当然,本人能力有限,难免会有纰漏,希望大家可以指正。

转载于:https://blog.51cto.com/10799170/1719002

最后

以上就是矮小冰棍为你收集整理的#运算符和##预算符的全部内容,希望文章能够帮你解决#运算符和##预算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部