注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

蒙奇D小豌豆的博客

蒙奇D小豌豆的学习记录

 
 
 

日志

 
 

宏中"#"和"##"的用法  

2012-12-02 20:14:12|  分类: userspace |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 
1. 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 
用法: 
#include<stdio.h>  

#define STR(s)     #s 
#define CONS(a,b)  (int)(a##e##b) 

int main() 
    printf(STR(hello));           // 输出字符串"hello" 
    printf("\n%d\n", CONS(3, 3));  // 3e2 输出:3000 
    return 0; 

2. 需要注意的是凡宏定义里有用'#'或'##'的地方宏参数是不会再展开.
#include <stdio.h>  
#include <limits.h>

#define STR(s)     #s 

int main() 
    printf(STR(INT_MAX));         
    return 0; 

#./main
INT_MAX //不会被扩展

解决方法
#include <stdio.h>  
#include <limits.h>

#define _STR(s)     #s 
#define STR(s)     _STR(s)

int main() 
    printf(STR(INT_MAX));           // 输出字符串"hello" 
    return 0; 
#./main
2147483647


  评论这张
 
阅读(155)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018