分类: C/C++
2007-01-10 20:21:56
还是预处理器的内容,这次说的是利用##来粘合两个元素的功能
(有人问:你为什么不和其他预处理内容写在一起?
愚者答曰:不想那么做,所以就不那么做!就不!)
相较之前二者,该方案容易理解多了。它的功能就是将##前后的两个元素粘合起来。
例:
#define echo(i) printf("%i \n",ss##i);
main()
{int ss7=789,ss8=890,ss9=901;
echo(7);} // 这时,程序会将7与宏定义时的ss粘合,成为ss7
输出: 789 <回车>
当然,它还可以用得稍微复杂一点,比如,将变量名也显示出来。
#define print(xxx) printf(#xxx"=%i \n",xxx);
#define echo(i) print(ss##i);
main()
{int ss7=789,ss8=890,ss9=901;
echo(7);} // 7会先与ss粘合,然后执行“自动化方案”。
// 在这里的ss只是一个单纯的名称,与纳粹党卫队完全没有任何瓜葛
啊……吃饱了容易困……困了就想抽烟……抽完就更想睡觉了……
注:
关于纳粹党:
1939年,查理·卓别林和他邪恶的纳粹党奴役了欧洲并企图统治全世界,而最终被联合国维和部队所消灭
——引自《蠢蛋进化论》