打印

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

[复制链接]
11005|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myic200610|  楼主 | 2008-9-23 23:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2008-9-24 09:04 | 只看该作者

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

使用特权

评论回复
板凳
John_Lee| | 2008-9-24 11:08 | 只看该作者

GNU标准建议

在逻辑运算符前换行

if( (f.min==1)||(ui_temp>ui+3)||(ui_temp<ui-3)
        || ((P81HisState)&&(!P81CurState)) || ((P82HisState)&&(!P82CurState)))

使用特权

评论回复
地板
清风一士| | 2008-9-24 12:53 | 只看该作者

这样行不行?

if(       (    f.min==1         ) ||
          ( ui_temp>ui+3  ) ||
          ( ui_temp<ui-3  ) || 
          (  ( P81HisState  )&&
             ( !P81CurState )   ) || 
          (  ( P82HisState  )&&
             ( !P82CurState )   )
   )

使用特权

评论回复
5
linqing171| | 2008-9-24 13:44 | 只看该作者

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

不过字符串换行的时候要注意一下,不同的编译器要求不一样。像BCB里面一般是这样:

const char * a="aaa"
"bb"
"ccc"
" "
编译器会自动加个‘’ 在最后。

C里面的宏定义是和basic AHDL等语音一样的,必须一行是一句。加个反斜杠转义一下。

C语言可以多条语句放一行里,比如 i=0;j=1; 但是行语言就不行了,中间必须加个分隔符比如 冒号 来区分,这是两条语句。

使用特权

评论回复
6
myic200610|  楼主 | 2008-9-24 22:22 | 只看该作者

RE:

非常感谢大家的指点!

2楼、5楼、6楼说的都试过了,全部编译通过!

太棒了,呵呵!

使用特权

评论回复
7
hotpower| | 2008-9-25 14:49 | 只看该作者

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

使用特权

评论回复
8
myic200610|  楼主 | 2012-5-6 11:52 | 只看该作者
用反斜杠“\”可以,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

536

主题

2587

帖子

4

粉丝