#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) |