C语言的##在宏里面的使用

 时间:2024-10-14 10:18:59

1、一般用法,我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.

C语言的##在宏里面的使用

2、当宏参数是另一个宏的时候,需要注意的是凡宏定义里有用'#'或'##'的地方宏参数是不会再展开.

C语言的##在宏里面的使用

3、非'#'和'##'的情况,#define TOW (2),#define MUL(a,b) (a*b),printf("%d*%d=%d\n", TOW, TOW,MUL(TOW,TOW))

C语言的##在宏里面的使用

4、这行的宏会被展开为:printf("%d*%d=%d\n", (2), (2),((2)*(2)));MUL里的参数TOW会被展开为(2).

C语言的##在宏里面的使用

5、当有'#'或'#拭貉强跳#'的时候,#define A (2),#define STR(s) #s,#define CONS(a,b) int(a##e##b)

C语言的##在宏里面的使用

6、INT_MAX和A都不会再被展开, 然而解决这个问题的方法很简单. 加多一层中间转换宏.

C语言的##在宏里面的使用

7、加这层宏的用意是把所有宏的参数在这层里全部展开, 那么在转换宏里的那一个宏(_STR)就能得到正确的宏

C语言的##在宏里面的使用
  • linux查看文件和查看文件头和尾
  • php+mysql如何修改指定字段的内容
  • centos7配置网络连接
  • 如何用PYTHON正则表达式去除多余字符
  • linux如何重置root密码
  • 热门搜索
    春天脸上过敏怎么办 帝豪gl怎么样 圆珠笔印怎么洗 京东白条怎么借款 故事梗概怎么写 颜回怎么死的 怎么瘦肚子和腰上赘肉 马云怎么看数字货币 脸色暗黄怎么办 机械表走的快怎么办