宏定义中的续行符

原创 2011年01月15日 10:33:00

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

c/c++中的换行符“\” 宏定义\字符串 多行书写时换行

在代码中当一行的代码过多的时候,对于代码的阅读特别不方便,这时,需要使用换行符“\”。在使用换行符的时候要注意两点: 1.c的编译器是根据“;”来判断是否为一个语句的,所以只要不在小括号中换行都是可...
  • fyfcauc
  • fyfcauc
  • 2014年07月30日 12:03
  • 4115

【C基础】#define宏定义中的#,##,@#,\ 这些符号的神奇用法

C/C++ 宏命令的神奇用法。先看下面三条语句:#define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x1. ## 连接...
  • freeWayWalker
  • freeWayWalker
  • 2015年12月08日 15:55
  • 6587

define宏定义中的#,##,@#及\符号

一、# 名称:字符串化操作符 其作:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。 使用条件:只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前 举例:...
  • zhubosa
  • zhubosa
  • 2016年04月28日 18:17
  • 2250

宏定义中 续行符“\”和字符连接符“##”

把一个预处理指示写成多行要用“\”续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成。 而把C代码写成多行则不必使用续行符,因为换行在C代码中只不过是一种空白字符,在做语法解析时所有空白字符...
  • al86866365
  • al86866365
  • 2013年02月03日 21:33
  • 981

C++续行符(反斜杠符号)

参考一: 由于最近好几次碰到反斜杠,不明白是什么意思,后来查了下,原来用的较多的是作为强制换行符,衔接上下两行的意思。有时候一个语句太长,一行写不下,或者显得不美观,为了便于阅读,可以将较长的语...
  • zhu2695
  • zhu2695
  • 2013年06月22日 19:09
  • 3048

如何去掉string中包含的续行符(“\”)

如何去掉string中包含的续行符(“\”)
  • qq_27587417
  • qq_27587417
  • 2016年07月26日 10:58
  • 877

C语言宏定义##连接符和#符的使用

  • 2014年12月09日 10:35
  • 5KB
  • 下载

C语言宏定义##连接符和#符的使用

C语言宏定义##连接符和#符的使用  C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单...
  • LEFT_COAST
  • LEFT_COAST
  • 2017年01月09日 22:15
  • 196

C语言宏定义##连接符和#符的使用

## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语...
  • oyhb_1992
  • oyhb_1992
  • 2017年07月13日 10:23
  • 103

C语言宏定义##连接符和#符的使用

转自: 目录(?)[-] C语言宏定义连接符和符的使用 关于和关于的使用错误的嵌套Misnesting由操作符优先级引起的问题Operator Precedence Problem消除...
  • ningxialieri
  • ningxialieri
  • 2014年08月29日 16:17
  • 626
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:宏定义中的续行符
举报原因:
原因补充:

(最多只允许输入30个字)