关闭

宏定义中的续行符

标签: 编译器
859人阅读 评论(3) 收藏 举报
分类:

宏定义中的续行符
  宏定义规定,宏定义必须在一行里完成。所以用#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的预处理器在编译之前会自动将"/"与换行回车去掉,这样一来既不影响阅读,又不影响逻辑。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:87440次
    • 积分:1428
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:3篇
    • 译文:2篇
    • 评论:11条
    最新评论