tutb12345的专栏

其他连接

宏定义中的续行符

宏定义中的续行符
  宏定义规定,宏定义必须在一行里完成。所以用#define定义宏定义时,有时为了阅读方便,
  就加续行符"/"来换行。在普通代码行后面加不加都一样(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的预处理器在编译之前会自动将"/"与换行回车去掉,这样一来既不影响阅读,又不影响逻辑。

阅读更多
文章标签: 编译器
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

宏定义中的续行符

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭