Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370745
  • 博文数量: 66
  • 博客积分: 3201
  • 博客等级: 中校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-04 11:17
文章分类

全部博文(66)

文章存档

2016年(1)

2014年(1)

2012年(1)

2011年(2)

2010年(18)

2009年(42)

2008年(1)

分类: C/C++

2009-02-19 14:16:50

#include //没有什么好解释的 :P

#define _(_) "d.%.4s%."_"2s" //定义一个宏,其实是废话。如果刚才没有理解,我这里先
                             //稍微多说点。看看这个宏#define _max(a,b) a>b?a:b 还不明白就先下看吧

//他的结果是
int main()
{  
//所有问题估计都集中在这里了,其实看白了也很简单:宏替换!
//忘了一点,其实这里的char*_估计迷惑了一些人。其实就是相当于
//char* tmp 只不过这里把tmp提换为了‘_’而已 :P

char*_="@2kaspner"_()"%03"_("4s%.")"t ";
//分解它!先替换第一个_(),这里括号内没有_了,就把宏的_去掉好了,如下:
//char* _ = "@2kaspner""d.%.4s%.""2s""%03"_("4s%.")"t ";
//这样和还有宏,就再替换!结果如下:
//这步需要注意,这里的"4s%."相当于宏中的_,所以
//_("4s%.")相当于"d.%.4s%."_"2s"=="d.%.4s%.""4s%.""2s",于是结果出来了,
    //char* _ = "@2kaspner""d.%.4s%.""2s""%03""d.%.4s%.""4s%.""2s""t ";
//到了此时,需要说一点,这里的""""""可以去掉的只有头尾了,估计你就明白了
//char* _ = "@2kaspnerd.%.4s%.2s%03d.%.4s%.4s%.2st ";

//到了这步,就需要处理下边这步了-_-!怎么尽是废话阿?

//先来个_+11== "%.4s%.2s%03d.%.4s%.4s%.2st "; 不要问为什么哦!?
//好了,剩下的就不多说了,printf的输出要是还不熟悉,就参考我的另外一篇介绍性随笔
    //
printf(_+11,_+6,_,6,_+2,_+7,_+6);

阅读(765) | 评论(0) | 转发(0) |
0

上一篇:认识Android

下一篇:Samsung手机code

给主人留下些什么吧!~~