现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

宏定义中的续行符"/"

2012-06-14 21:37 工业·编程 ⁄ 共 506字 ⁄ 字号 暂无评论

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

给我留言

留言无头像?