带参数的宏定义,利用宏参数创建字符串——#运算符


    看看以下两个宏定义:

#define PSQR(x) printf("The square of x is %d.\n",(x)*(x))

#define PSQR(x) printf("The square of "#x" is %d.\n",(x)*(x))

    我们的目标是希望使用宏的时候将宏体中的x替换为宏参数,但是第一个宏定义是不能完成这样的目标的,因为引号中的x会被看做是普通文本,不可替换;我们可以采用#运算符来实现这样的功能。

 

PSQR(x)在两个不同的宏定义输出的结果如下:

The square of x is 4.

The square of 2 is 4.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM