在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转自 https://blog.csdn.net/ismallboy/article/details/8082514
int i = 1; cout<<i++ <<i++<<i++<<endl; 这个是没错的。 但是: int i = 1; cout< <i++<<i++<<i++<<endl; 这个会发生错误。 然后这个: int i = 1; cout<\ <i++<<i++<<i++<<endl; 但是这个也是有问题的。 然后这个: int i = 1; cout<\ <i++<<i++<<i++<<endl; 这个是没有问题的!
另外还有一个需要注意的地方,上面的续行符是用在某个语句比较长的时候,用来续行的,这样会好看点。还有一作用就是——系统规定,宏定义的时候,代替的语句很长或者是个语句块甚至函数的时候,就需要用到这个反斜杠了!看下面:
这玩意儿有个正式的名称叫做续行符,在普通代码行后面加不加都一样(VC是自动判断续行的),但是在宏定义里面就特别有用,因为宏定义规定必须用一行完成: #define SomeFun(x, a, b) if(x)x=a+b;else x=a-b; 这一行定义是没有问题的,但是这样代码很不容易被理解,以后维护起来麻烦,如果写成: #define SomeFun(x, a, b) if (x) x = a + b; else x = a - b; 这样理解是好理解了,但是编译器会出错,因为它会认为#define SomeFun(x, a, b)是完整的一行,if (x)以及后面的语句与#define SomeFun(x, a, b)没有关系.这时候我们就必须使用这样的写法: #define SomeFun(x, a, b)\ if (x)\ x = a + b;\ else\ x = a - b; 注意:最后一行不要加续行符啊.VC的预处理器在编译之前会自动将\与换行回车去掉,这样一来既不影响阅读,又不影响逻辑,皆大欢喜 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论