C语言的条件表达式过长,如何换行?
请教:<br /><br />if( (f.min==1)||(ui_temp>ui+3)||(ui_temp<ui-3) || ((P81HisState)&&(!P81CurState)) || ((P82HisState)&&(!P82CurState)))<br /><br />在上面的if语句中,条件表达式过长,请问怎么分行?<br /><br />谢谢!尽量断在优先级最低的操作符前或后,且排整齐。
GNU标准建议
在逻辑运算符前换行<br /><br />if( (f.min==1)||(ui_temp>ui+3)||(ui_temp<ui-3)<br /> || ((P81HisState)&&(!P81CurState)) || ((P82HisState)&&(!P82CurState)))这样行不行?
if( ( f.min==1 ) ||<br /> ( ui_temp>ui+3 ) ||<br /> ( ui_temp<ui-3 ) || <br /> ( ( P81HisState )&&<br /> ( !P81CurState ) ) || <br /> ( ( P82HisState )&&<br /> ( !P82CurState ) )<br /> )c语言是块语言,不是行语言,可以随便换行。
不过字符串换行的时候要注意一下,不同的编译器要求不一样。像BCB里面一般是这样:<br /><br />const char * a="aaa"<br />"bb"<br />"ccc"<br />""<br />编译器会自动加个‘ ’ 在最后。<br /><br />C里面的宏定义是和basic AHDL等语音一样的,必须一行是一句。加个反斜杠转义一下。<br /><br />C语言可以多条语句放一行里,比如 i=0;j=1; 但是行语言就不行了,中间必须加个分隔符比如 冒号 来区分,这是两条语句。
RE:
非常感谢大家的指点!<br /><br />2楼、5楼、6楼说的都试过了,全部编译通过!<br /><br />太棒了,呵呵!<br />俺可没说什么~~~俺是5楼的学生~~~
用反斜杠“\”可以,呵呵
页:
[1]