C语言里边,##表示将两个字符串链接起来吧?但是如果是##value这样的情况是表示什么意思呢?

发布网友

我来回答

3个回答

热心网友

#include <stdio.h>

#define prt_str( begin , end ) printf("%s=%s\n" , #begin , begin##end )

//这里begin##end意思是将这两个信息连成一个串,而这个串表示一个变量,如,本例中拼出string
int main()
{
char string[100]="hello world!";
prt_str( str , ing ); //输出str=hello world!
//这句,完成预处理后就变成:printf("%s=%s\n" ,“str" ,string ) ;
return 0;
}

热心网友

##为双目符,事实上在预处理阶段很少用的到!比如可以这样用:
#define ID_NUM(n) i##n
这样ID_NUM(1) 则在预处理阶段被替换为i1

热心网友

C 语言里没有 "##" 这样的运算符,你记错了吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com