C++宏定义中##和#的区别
来源:互联网 发布:香港一年制研究生 知乎 编辑:程序博客网 时间:2024/05/10 04:32
C++宏定义中##和#的区别
我们用一实例来学习一下C++宏定义中的## 和#的区别。
首先我们来定义一个宏:#define STRCPY(a, b) strcpy(a ## _p, #b)
1. 宏定义里面有个##表示把字符串联在一起。如:
#include <stdio.h>
#define CAT(x,y) x##y
int main()
{
printf("%s", CAT("hello", " world"));
return 0;
}
2.宏定义中的#表示将其变为字符串。如:
#include <stdio.h>
#include<string.h>
#define STRCPY(a, b) strcpy(a ##_p, #b)
int main()
{
char arrr_p[]="abcdefg";
char *b = "123456";
STRCPY(arrr, b);
return 0;
}
结果为把b变成了字符串,可见#b的功能是将所有类型名都变成了字符串。
另,a、_p和##有没有空格不影响结果。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiyanfeng/archive/2009/06/25/4297103.aspx
- c 语言中宏定义和定义全局变量的区别
- C/C++中宏定义和常变量的区别
- C/C++ 宏定义中#、##、#@的区别
- [水滴]C中变量的定义和声明的区别
- 在C/C++语言中声明和定义的区别
- java和c语言中数组定义初始化的区别
- c语言中 定义和声明 的区别
- C语言中声明、定义和初始化的区别
- c与c++中enum和struct定义的区别
- C 语言中定义和声明的区别
- c语言中声明和定义的区别
- C语言、C++中声明和定义的区别
- C语言中声明和定义的区别
- 回顾c语言中声明和定义的区别
- C++宏定义中##和#的区别
- c语言中宏定义和函数区别
- C宏定义中## 和# 的含义
- gcc编译器和turbo C编译器在宏定义中关于i++的操作的区别
- onserverclick事件触发不了
- 开篇
- (转)IT项目管理-----给年轻工程师的十大忠告
- 站在____的门口(湖北高考作文)
- NET SEND命令
- C++宏定义中##和#的区别
- table 选择奇数行,偶数行的方法
- Tomcat下Yale CAS配置
- Inno Setup安装、卸载时判断是否程序正在运行,安装完成时自动打开网页的脚本
- eclipse 3.x中热部署WEB程序TOMCAT配置
- 宏定义 续行符"/"
- 使用 AppFuse 快速构建 J2EE 应用
- [RIA]HTML5怎么就成了RIA“杀手”?
- 复现内存泄露的工具