掌握C++编程中反斜杠续行符的使用方法

2025-05-29 0 74

1) 用在宏定义中:

?

1

2
#define CV_ARE_SIZES_EQ(mat1, mat2) \\

((mat1)->rows == (mat2)->rows && (mat1)->cols == (mat2)->cols)

2) 用在printf中,有时候printf中语句太长,需要切分,则需用到反斜杠
3) 用“//”只能注释当前行的语句,想要将下一行一起注释掉,则可以在该行最后加上反斜杠
另外,反斜杠除了强制换行的作用之外,还有转义符的意思。如:“\\n”表示换行符,"\\t" "\\b"等,此时反斜杠表示转义,执行反斜杠后面的符号表示的意思。
但若要取反斜杠的本意,则需要在反斜杠之前再加一个反斜杠才能正确表示。比如我要在程序中读取F:\\OpenCV2.0\\vs2008\\videos\\videos1.avi ,,我不能直接将这样表示,而应该在每一个反斜杠前面再加一个反斜杠,表示为:F:\\\\OpenCV2.0\\\\vs2008\\\\videos\\\\videos1.avi ,这样才能正确读取你要的文件。
总结一下,目前个人了解的反斜杠的作用是两种:
1 是作为转义字符,将进行的操作是紧跟其后的字符的操作。
2 与回车键组合进行强制换行。在要强制换行的地方输入反斜杠然后回车,系统编译的时候会自动将反斜杠下面的一行与前面的一行解释成一个语句。

续行符
在普通代码行后面加不加都一样(VC是自动判断续行的),但是在宏定义里面就特别有用,因为宏定义规定必须用一行完成:

?

1
#define SomeFun(x, a, b) if(x)x=a+b;else x=a-b;

这一行定义是没有问题的,但是这样代码很不容易被理解,以后维护起来麻烦,如果写成:

?

1

2

3

4

5
#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)没有关系.
这时候我们就必须使用这样的写法:

?

1

2

3

4

5
#define SomeFun(x, a, b)\\

if (x)\\

x = a + b;\\

else\\

x = a - b;

注意:最后一行不要加续行符啊.VC的预处理器在编译之前会自动将\\与换行回车去掉,这样一来既不影响阅读,又不影响逻辑,皆大欢喜

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 掌握C++编程中反斜杠续行符的使用方法 https://www.kuaiidc.com/105913.html

相关文章

发表评论
暂无评论