首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个C++中关于符号""和""的有关问题

2012-03-03 
请教一个C++中关于符号#和##的问题这是一个宏定义:#defineP(className)\intclassName##create{\......

请教一个C++中关于符号"#"和"##"的问题
这是一个宏定义:

#define   P(   className   )   \
        int   className   ##   create{   \
                ......     //内容省略     \
                const   char*   className::para1   =   #className   "create ";     \
                ......     //内容省略       \
        }

我想问的是,这段中的 "## "和 "# "这两个符号分别代表什么意思。
烦请指点,多谢了!

[解决办法]

给个例子你就明白了:

#include <iostream>
using namespace std;

#define P( para ) \
char * mychar = #para "123 "\
P(hello);
int main()
{
printf( "mychar = %s\n ", mychar);
}

输出的结果就是:mychar = hello123
[解决办法]
##是连接字符串
#是将宏定义中的变量转换为字符串
例如
#define P(A) #A
#define Q(A,B) A##B
源码:
int main()
{
cout < <P(a) < <endl;
cout < <Q( "a ", "b ") < <endl;
}
编译后为:
int main()
{
cout < < "a " < <endl;
cout < < "a " "b " < <endl;
}
输出
a
ab

热点排行