《c语言编程技巧-之二》由会员分享,可在线阅读,更多相关《c语言编程技巧-之二(35页珍藏版)》请在金锄头文库上搜索。
1、WC语言编程技巧之二表达式和基本语向常量和宏京量第4章表达式和基本语句表达式和语句都属于C+HC的短语结构语法。很多程序员用隐含错误的方式写表达式和基本语句。主要讨论:if、for、while、goto、switch4.1运算符的优先级4.2复合表达式4.3武语余4.4循环语句的效率4.5for语句的循环控制变量4.6switch语吕4.7goto语吕林4.1运算符的优先级*C+HC语言的运算符有数十个,运算符的优先级与结合律如表4-1所示。*一元运算符+-*的优先级高于对应的二元运算符。HERE玑T|1日一1-气-Gszeof人丿河鄢交近射*【建议4-1】如果代码行中的运算符比较多,用括号缉
2、确定表达式的操作顺序,避免使用默认的优先级。目。为了防止产生歧义并提高可读性,应当用括号确定表达式的操作顺序。word=(highn=pthisJring-m=pthisJring-k=0;-/语句太长,不清晰-pthisJring-n=0;/这样语句排列整齐明确-pthisJring-m=0:-pthisJring-k=0;*【建议4-2】不要编写太复杂的复合表达式。*【建议4-3】不要有多用途的复合表达式。i=a=b&cd&c+f=b)&(c)&(c+D_(g+h)0上式的史文了1=聂=b+c+r;/表达式两个用途:求a值也求d值,应该拆分a=b+c;/求a值d=a+T;/求d值5建议4-
3、4】不要把程序中的复合表达式与“真正的佩敬学表达式“混涤。智。if(abc)/abc是数学表达式而不是程序表达式并不表示*讪(ab)&(bc)t。而是成于他人贾觞的二工识(ab)c)|*4.3.1布尔变量与零值比较。【建议4-5】不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。根据布尔类型的语义,零值为“假“4(记为FALSE),任何非零值都是“真“(记为4TRUB)5修脱。TRUB皂俪究章是什么干诀有统一的征准。P-VisualC+将TRUE定义为1,-VisualBasic则将TRUE定义为-1。*建议的方法:-自己定义布尔变量名字为flag,它与零值比较-在文件中自己定义TR
4、UE、FALSE等if(flag=TRUE)W不良风格if(flag=1)/不良风格if(flag=FALSB)/不良风格ifGHlas=0/不良风娇if(flag)/表示flag为真if(lflag)/表示flag为假#defineTRUE1#defineFALSE0if(flag=TRUB)W定义后可以这样比较4.3.2整型变量与零值比较*【建议4-6】应当将整型变量用“=一“或“!=“直接与0比较。不可模仿布尔变量的风格.intvalue=1;训(yaiue=0)/这祥比绘表示value是弛型变量讨(value!=0)intvalue=1;训(value)/会让人误解value是布尔变量讨lvalue)