区分不同情况,有多种方式可以采用。
不管是哪种情况,都可以用\结尾作为换行标记,在编译时,\后面的换行符将被忽略,当做一行处理。比如宏定义时使用
#define my_puts(x) printf("%s", \
x);
和写作
#define my_puts(x) printf("%s",x);
是没区别的。 这里的\必须存在,不能省略。
不过有些情况下可以采用更简单的形式。
1 在字符串中换行。
当字符串过长,写在一行中阅读不便时,可以采用一种特殊的换行方式。
C语言规定,连续的用""引起的字符串常量,会默认合并为一个常量字符串。
于是
char * s = "this "
"is "
"a "
"test string";
和
char * s= "this is a test string";
是相同的。
2 执行语句的换行。
当一个语句过长时,直接换行,并不会影响语句的编译。
比如
printf("%d,%d,%d,%d\n",
a,
b,
c,
d);
和
printf("%d,%d,%d,%d\n", a, b, c, d);
没有区别。注意不要在一个变量名中间换行即可。