Chinaunix首页 | 论坛 | 博客
  • 博客访问: 182954
  • 博文数量: 93
  • 博客积分: 832
  • 博客等级: 军士长
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-19 02:28
文章分类
文章存档

2012年(41)

2011年(45)

2010年(7)

分类:

2012-01-25 22:07:24

原文地址:c 宏 作者:jazeltq

对c语言的宏不是很明白,也没有系统的学习,只能是见到就记下来了
一下是看到的一点内容
一下片断出自
http://www.cppblog.com/kerlw/archive/2007/04/20/22381.html


也许你也不知道~呵呵,最后我还是找到了相关的资料,解读了这个define,还顺便认识了另外两个不常用的define

#define Conn(x,y) x##y
#define ToChar(x) #@x
#define ToString(x) #x

x##y表示什么?表示x连接y,举例说:
int  n = Conn(123,456);  结果就是n=123456;
char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";
怎么样,很神奇吧

再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举例说:
char a = ToChar(1);结果就是a='1';
做个越界试验char a = ToChar(123);结果是a='3';
但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant   :P

最后看看#x,估计你也明白了,他是给x加双引号
char* str = ToString(123132);就成了str="123132";
阅读(140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册