C语言中反斜杠的使用
问题1:
#define f(z) (z
(((2-z)*(2-z))*((2-z)*(2-z)))/560:0;
上面这个*\什么意思
问题2:
一语句
printf("a=%.2f\n,b=%.2f\n,c=%.2f\n,d=%.2f\n,e=%.2f\n",a,b,c,d,e);
不提示错误。换成
printf("a=%.2f\n,b=%.2f\n,c=%.2f\n,
d=%.2f\n,e=%.2f\n",a,b,c,d,e);
编译时提示:unerminated string or chatacter constant in function main,
function call missing,
illegal chatacter'\'(0*5) in function main
问题1中那个\表示和后面的是接一起的,告诉程序下一行和上一行是一起的。 反斜杠符号起到长代码分行书写功能。
问题2改成
printf("a=%.2f\n,b=%.2f\n,c=%.2f\n,\
d=%.2f\n,e=%.2f\n",a,b,c,d,e);
C语言中一行只可以输入80个字符,如果代码需要换行,则在每行后面加上行结束符“\”
像你的第二条语句,没加行结束符,编译时会认为,字符串没有正确结束
例如:
"I \
love \
you"
上面的字符串与下面的单行字符串等价:
"I love you"
但是printf这样的标识符和关键字不可以分行写。下面的两种写法都是错的:
1. print
f("hello");
2. print\
f("hello");
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
在写代码的时候遇到代码超长的情况下为了代码的美观及方便测试,故需要涉及到代码的换行问题,以下讨论了几种的情况:
1、#define的宏
宏定义是以“\”换行,如:
#define MAX(a,b) \
((a)
2、关键字的换行
关键字换行支持:(+ - * / % = , | & ^ ~ || && == !=)以及括号等,均能作为换行符号。
3、字符串的换行
换行的字符串最后,添加双引号,下一行开头也加上双引号就可以。
如:
char buf[128];
strcpy(buf, "1234567890ab "
"cdefg ");
上述示例等同于:
char buf[128];
strcpy(buf, "1234567890abcdefg ");