myic200610 发表于 2008-9-23 23:21

C语言的条件表达式过长,如何换行?

请教:<br /><br />if(&nbsp;(f.min==1)||(ui_temp&gtui+3)||(ui_temp&ltui-3)&nbsp;||&nbsp;((P81HisState)&&(!P81CurState))&nbsp;||&nbsp;((P82HisState)&&(!P82CurState)))<br /><br />在上面的if语句中,条件表达式过长,请问怎么分行?<br /><br />谢谢!

HWM 发表于 2008-9-24 09:04

尽量断在优先级最低的操作符前或后,且排整齐。

John_Lee 发表于 2008-9-24 11:08

GNU标准建议

在逻辑运算符前换行<br /><br />if(&nbsp;(f.min==1)||(ui_temp&gtui+3)||(ui_temp&ltui-3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;((P81HisState)&&(!P81CurState))&nbsp;||&nbsp;((P82HisState)&&(!P82CurState)))

清风一士 发表于 2008-9-24 12:53

这样行不行?

if(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;f.min==1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;||<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;ui_temp&gtui+3&nbsp;&nbsp;)&nbsp;||<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;ui_temp&ltui-3&nbsp;&nbsp;)&nbsp;||&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;&nbsp;(&nbsp;P81HisState&nbsp;&nbsp;)&&<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;!P81CurState&nbsp;)&nbsp;&nbsp;&nbsp;)&nbsp;||&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;&nbsp;(&nbsp;P82HisState&nbsp;&nbsp;)&&<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;!P82CurState&nbsp;)&nbsp;&nbsp;&nbsp;)<br />&nbsp;&nbsp;&nbsp;)

linqing171 发表于 2008-9-24 13:44

c语言是块语言,不是行语言,可以随便换行。

不过字符串换行的时候要注意一下,不同的编译器要求不一样。像BCB里面一般是这样:<br /><br />const&nbsp;char&nbsp;*&nbsp;a=&quot;aaa&quot;<br />&quot;bb&quot;<br />&quot;ccc&quot;<br />&quot;
&quot;<br />编译器会自动加个‘’&nbsp;在最后。<br /><br />C里面的宏定义是和basic&nbsp;AHDL等语音一样的,必须一行是一句。加个反斜杠转义一下。<br /><br />C语言可以多条语句放一行里,比如&nbsp;i=0;j=1;&nbsp;但是行语言就不行了,中间必须加个分隔符比如&nbsp;冒号&nbsp;来区分,这是两条语句。

myic200610 发表于 2008-9-24 22:22

RE:

非常感谢大家的指点!<br /><br />2楼、5楼、6楼说的都试过了,全部编译通过!<br /><br />太棒了,呵呵!<br />

hotpower 发表于 2008-9-25 14:49

俺可没说什么~~~俺是5楼的学生~~~

myic200610 发表于 2012-5-6 11:52

用反斜杠“\”可以,呵呵
页: [1]
查看完整版本: C语言的条件表达式过长,如何换行?