新微赢技术网

标题: 宏问题 #define TRACE(ARG) cout [打印本页]

作者: Yaci    时间: 2009-11-5 01:07
标题: 宏问题 #define TRACE(ARG) cout
#include<iostream.h>
#define TRACE(ARG) cout<< #ARG<<endl;ARG
void main()
{
//for(int i=0;i<100;i++)cout<<i<<endl;
TRACE(for(int i=0;i<100;i++)) //这里有';'与无';'结果不一样,不知道这里的宏是如何替换的
TRACE(cout<<i<<endl;)
}



XDJM们,请指教一二~~
作者: ~~精灵小姐$    时间: 2009-11-5 01:07
不会吧,没人知道?
作者: 笨笨洋葱    时间: 2009-11-5 01:07
TRACE(for(int i=0;i<100;i++))
TRACE(cout<<i<<endl;)

注意 # 的用法 #ARG 意思是把ARG转换为字符串

/*没有分号 展开为
cout<<"for(int i=0;i<100;i++)"<<endl;
for(int i=0;i<100;i++) cout<<"cout<<i<<endl;"<<endl; //输出100次
cout<<i<<endl;
*/

/*有分号 展开为
cout<<"for(int i=0;i<100;i++)"<<endl;
for(int i=0;i<100;i++);//循环100次 不输出任何东西
cout<<"cout<<i<<endl;"<<endl;
cout<<i<<endl;
*/




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2