看看以下两个宏定义:

#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.

相关文章:

  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2021-06-27
  • 2021-06-24
  • 2022-12-23
  • 2022-01-24
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
  • 2021-03-31
  • 2021-10-27
  • 2022-01-19
  • 2022-12-23
相关资源
相似解决方案