C语言求指导!当程序太多的“IF”怎么办!感觉没层次感!
本人初来咋到,现在还是一名大三学生!由于前2年荒废了学习!基础不好!好不容易发现这么一个好的平台!希望可以借此机会提高自己!所以在这里还请各位前辈帮帮小弟一把!本人虚心好学!{:lol:}
C语言求指导!当程序太多的“IF”怎么办!感觉有时候分不清那个“ELSE”和他对应!需要多重循环的时候用什么语句最好!感觉没层次感! if能实现多重循环? 写的时候对对齐,层次感不就有了......
实在没办法,还可以加注释在一边...... Tab键.
在VC下可以先Ctrl+A,然后Alt+F9.不过有些对齐会出现问题.
流程图辅助 switch语句? 也有同样的疑问,一堆的if else 花括对齐。
if 是C使用率最高的,如果没有if真不知程序该怎么写{:lol:} 状态机、switch 推荐用source insight编写代码,然后用astyle插件来定义代码规范,可以自动把代码重新编辑一次 lengqing1309 发表于 2012-4-28 09:26 static/image/common/back.gif
状态机、switch
switch可没有if那样可以进行优先判定哦! korgo 发表于 2012-4-28 09:31 static/image/common/back.gif
switch可没有if那样可以进行优先判定哦!
分支在前不就是优先判定了。 用UE不是可以折叠吗?一折叠就知道那个对应那个了。前提是都有括号。 if 不要超过 3层, 可以把一系列操作定义成函数,减少if 的层数,增强阅读性 格式要对齐, if
else if
else if
else 见过...一堆if else...本人 if else 最多嵌套不超过3次,要么重写,要么。。。多写几个函数。。。 状态机很好用,可以实现多重循环,多级菜单。 if和else或ifelse必须搭配使用;代码需要优化,先考虑switch-case,再if-else。最最后再考虑goto。推荐本书:《C语言程序设计:现代方法(第2版)》 - 金(K.N.King); if选择语句,建议多看书先 太多IF就用switch语句咯
其实写代码养成良好的缩进习惯,可读性也很高 缩进
良好的缩进是很重要的~~~ utopiaprince 发表于 2012-4-28 09:30 static/image/common/back.gif
推荐用source insight编写代码,然后用astyle插件来定义代码规范,可以自动把代码重新编辑一次 ...
可以发一下source insight的连接么!刚刚百度看了一下!不过没怎么了解!新手不知道!还请前辈指导!讲讲你的感受!和技巧!谢谢啦! luluxiu 发表于 2012-4-28 10:44 static/image/common/back.gif
if和else或ifelse必须搭配使用;代码需要优化,先考虑switch-case,再if-else。最最后再考虑goto。推荐本书 ...
有书的PDF么!来个链接!谢啦! usingavr 发表于 2012-4-28 09:49 static/image/common/back.gif
if 不要超过 3层, 可以把一系列操作定义成函数,减少if 的层数,增强阅读性 ...
这建议老师也说过!想请教一下函数定义在头文件里和定义在MAIN()上面有上面区别么!我也觉得是这样比较好!可是还是有些生疏感觉!可以有什么让我从主观上改变我的编程思路么!这个是我参考别人的不过MIAN(0主函数都是我自己写的!感觉好乱! 封装成子函数。 automaticdai 发表于 2012-4-29 22:19 static/image/common/back.gif
封装成子函数。
刚刚有前辈教过我了!不过还是谢谢啦!{:lol:} 子函数,宏定义,状态机。。。得慢慢来,写多了,想得多了,水平就慢慢上去了。 if(i==0)
{
if(j==0)
{
if(k==0)
{
......
}
else
{
......
}
}
else
{
......
}
}
else
{
.....
}
只有是同一级的if else 才让他们在同一条垂直线上 yuxinxb13 发表于 2012-4-29 23:34 static/image/common/back.gif
if(i==0)
{
if(j==0)
真心懂了!{:loveliness:} w514640 发表于 2012-4-29 22:12 static/image/common/back.gif
有书的PDF么!来个链接!谢啦!
我这好书都是买的,电子版没感觉
基础好了再看《高质量C编程指南》
这个好象要练内功啊,代码的结构密切关系设计思路以及整个软件的结构,要写出unix那么优美的代码,数据结构和操作系统,要反复咀嚼。。。 是心乱了,程序不乱 短期记忆好,没问题的,要记住 if的else在哪里,如果不行,尽量层次化,再不行编辑器辅助,如果还不行,说明不是编程的料。 luluxiu 发表于 2012-5-7 17:49 static/image/common/back.gif
我这好书都是买的,电子版没感觉
基础好了再看《高质量C编程指南》
谢谢啦!前辈懂OV系列的芯片么!本人最近要做一个基于FPGA的摄像头!有点无头绪! 建议在写代码的时候不要直接在编译软件里面写,可以先在更智能的编辑工具里面编写代码,例如UltraEdit等。 本帖最后由 shamiao 于 2012-5-9 03:00 编辑
看懂好办,缩进,然后在每个endif处标明对应的是哪个if。
if或者for套的层数太多了一定是程序结构有问题。
一般3层就该想想,4层除非不得已不能用。
5层以上必须推翻重来。铁律,死规则,没余地,不商量,想都不用想。
程序结构必须注意,光“可行”不够,必须好读好改。
高级语言的设计思想就是牺牲代码效率换取编程效率嘛。
从这个意义上讲,写高级语言的程序,只是能运行那连及格都算不上。
逻辑一定要显而易见。至少要达到本人一个月后再看能懂的程度。
至于函数在哪写,答案是确定的:
①跨文件公用的函数,声明一定在.h里,代码一定在.c里。定义和实现分开,习惯啊习惯。
②文件内私有函数,声明和定义全在.c里。
原则:.h用于互相交流函数的调用方法,而绝对不可以暴露函数的内部逻辑!
另外,要做啥??基于FPGA的摄像头?!
FPGA是硬件并行的关系,C是由CPU主持串行执行的关系。
运作方式不一样,代码干脆就是两种完全不同的思想,碰到的困难也完全不同。
这根本不是一般的编程语言之间,只有点语法区别的层面。
所以求您了,千万别FPGA和C一起学,生不如死有木有啊! 写对齐了,又有层次感又美观! shamiao 发表于 2012-5-9 02:47 static/image/common/back.gif
看懂好办,缩进,然后在每个endif处标明对应的是哪个if。
if或者for套的层数太多了一定是程序结构有问题。
...
可是没有办法啊!差一个层次也得学啊!现在不学到以后学恐怕会有些晚!在学校的时间远比出去工作的时候时间来的更宽裕!所以前辈恳请帮帮小弟啦!不过你说的这段话确实受益匪浅!还是在这里谢谢啦!{:loveliness:} 写的时候该对齐的对齐...在结构上增加层次感吧 w514640 发表于 2012-5-8 20:24 static/image/common/back.gif
谢谢啦!前辈懂OV系列的芯片么!本人最近要做一个基于FPGA的摄像头!有点无头绪! ...
这个没玩过,等你玩会也是前辈了,有进展就一块在坛子里讨论吧 参考华为的软件编写规范 函数。、
一个函数如果超过10行,就要考虑是否需要写子函数。 新手路过~~
页:
[1]