当前位置:编程学习 > C/C++ >>

C语言中##的用法

C语言中##称为连接符,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。
要注意下面的用法:
1、
[cpp]  
#include <stdio.h>  
#define debug(format, args...) fprintf(stderr, format, args)  
void main(void){  
        debug("Test \n");  
        return;  
}  
有的说这种情况下字符串后面会多一个逗号,但是我用gcc编译不通过;
 
2、
[cpp] 
#include <stdio.h>  
#define debug(format, args...) fprintf(stderr, format, ##args)  
//#define debug(format, args...) fprintf(stderr, format, args)  
void main(void){  
        debug("Test \n");  
        return;  
}  
 
这样可以编译通过,执行正确;
 
3、
[cpp]  
#include <stdio.h>  
//#define debug(format, args...) fprintf(stderr, format, ##args)  
#define debug(format, args...) fprintf(stderr, format, args)  
void main(void){  
        debug("Test%d \n",1);  
        return;  
}  
 
这样也正确;
 
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,