• 【C++】反斜杠“”的作用


    转自 https://blog.csdn.net/ismallboy/article/details/8082514

    1. 转义字符;如: 表示回车+换行等。
    2. 续行符;这个需要注意一下,在一般的语句中,这个有和没有事没关系的,编译器编译的时候会自动把两句连在一起(注意是把第二行原原本本从开始第一个字符(包括空格)连接到前一行上面);看下面例子:
    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的预处理器在编译之前会自动将与换行回车去掉,这样一来既不影响阅读,又不影响逻辑,皆大欢喜
  • 相关阅读:
    1104--DNA排序
    poj1050-To the Max
    编译:一个 C 程序的艺术之旅(转载)
    大话同步/异步、阻塞/非阻塞(转载)
    Windows 在 git bash下使用 conda 命令
    Python Multiprocessing 多进程,使用多核CPU计算 并使用tqdm显示进度条
    Python 写入训练日志文件并控制台输出
    nn.Conv2d 参数及输入输出详解
    Python中 list, numpy.array, torch.Tensor 格式相互转化
    Linux 上传代码到github
  • 原文地址:https://www.cnblogs.com/gdut-gordon/p/9634770.html
Copyright © 2020-2023  润新知