转载:https://zhidao.baidu.com/question/13369126.html
区分不同情况,有多种方式可以采用。
不管是哪种情况,都可以用\结尾作为换行标记,在编译时,\后面的换行符将被忽略,当做一行处理。比如宏定义时使用
#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);
没有区别。注意不要在一个变量名中间换行即可。
2.
如果是字符串中间断掉则有两钟方法
printf( "hello"
"world" );
printf( "hello\
world" );
(推荐用第一种,第二种从第二行的开头便算起,也就是空格都算。。。)
,其它的情况,随便怎么分开都行,只要不把标识符分开。。。
如
printf( "%d %d",
x,
y );
printf( "hello"
"world" );
printf( "hello\
world" );
(推荐用第一种,第二种从第二行的开头便算起,也就是空格都算。。。)
,其它的情况,随便怎么分开都行,只要不把标识符分开。。。
如
printf( "%d %d",
x,
y );