请教C++高手??宏定义中的\有什么作用啊????

#include <iostream>
#include <string>
using namespace std;

#define Print(exp)\
{\
string::size_type pos=exp;\
if(pos!=string::npos)\
cout<<#exp<<"="<<pos<<endl;\
else\
cout<<#exp<<"=找不到"<<endl;\
}

int main()
{
string ss("Hello World!_Hello World!");
cout<<ss<<endl;

Print(ss.find('o',5));
Print(ss.find('o'));
Print(ss.find("He",10));

cout<<ss.find('o')<<endl;

return 0;
}

这是c++标准中的一部分,\写在一行的末尾代表该行与下一行在逻辑上为同一行,这是为了针对一行内容太多的处理方式,由于宏定义#define的内容只能写在一行上,换行即结束,所以为了避免长长的内容写在一行上,所以为了美观和容易观察采取了这种方式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-12
#define Print(exp)\
{\
string::size_type pos=exp;\
if(pos!=string::npos)\
cout<<#exp<<"="<<pos<<endl;\
else\
cout<<#exp<<"=找不到"<<endl;\
}

这个\表示下一行的内容,在逻辑上属于宏定义的内容。
第2个回答  2010-12-12
1.错:作用域相同,寿命不同
2.错:定义在函数体外的变量是全局变量,属静态存储类型
3.错:外部静态变量只能用于本模块,而外部非静态变量可被所有文件引用
4.对
5.错:赋值运算符没有副作用
6.错:类型高低指自动转换的提升规则,如double的类型高于int,因为int可以自动转换为double而不出现误差
7.对
8.错
第3个回答  2010-12-12
什么用都没有,那只是多写了的,你可以把它删掉
第4个回答  2010-12-12
\ 表示的是下一行与此行是同一行
相似回答