问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

设计C语言需注意哪些

发布网友 发布时间:2022-06-05 14:43

我来回答

4个回答

热心网友 时间:2023-01-28 07:35

基本的语法问题是一定要注意的,但是这是在编写代码的过程中要注意的问题,在设计阶段应该主意的是函数最小化、专业化和独立化。一个函数应该尽可能短小、并且其作用应该是简单的,不应该将很多明显可以分开的事情放在一个函数中,这样会对日后的维护千造成不便,而且函数应该独立运行,尽可能不依赖外部变量,这样在日后需要修改的时候才不至于牵一发而动全身。

热心网友 时间:2023-01-28 08:53

注意别写错

热心网友 时间:2023-01-28 10:28

多写注释

热心网友 时间:2023-01-28 12:19

基本知识:
1.“==”误写成“=”

2.case后忘了加break

3.scanf中忘了&

4. for后想用复合语句却忘了加”{}”

5. #开头的预编译指令后误加了”;”

6. 符号用了中文输入法

7. i++与++i混淆

8.实现swap()函数时没有使用指针作为参数

9. 忘了数组的合法下标范围是[0,N-1]

10. 用字符数组存放字符串时忘了为’\0’留位置

11. malloc()后忘了free()

12. fopen()后忘了fclose()

13. #include自己的文件时应该用”XXX.h”而不是<XXX.h>

14. 使用绘图函数时忘了在TC中选中Options->Linker->Libraries->Graphic Library

15. 误认为sizeof(int)永远等于2

16. 3/2等于1而不是1.5

17.混淆&&和&,混淆单引号和双引号

18. 忘了写函数的返回类型.没有返回类型时要写void,如果不写会默认返回int(对于老编译器)

19. 误将局部变量的地址针返回

20. 对文件开发时,将.c与.cpp文件混用(会引发LNK ERROR)

21. 结构体定义的”}”后忘了加”;”

22. 结构体名前忘了加struct(对于老编译器)

23. 混淆”.”与”->”

24. 递归无法终止(引发Stack Overflow)

25.while的退出条件写倒了

26. 在while循环中忘了让某个东西++,导致死循环. while循环前忘了给循环变量赋初值

27. 指针被释放后又继续使用;或某一地址被其他的指针释放了,后来又试图访问那块地址

28. 同一个地址被free()两次

29. 文件名路径中忘了用”\\”替代”\”

30. 变量忘了赋初值

二. 若干建议/提醒

1. 给float型变量赋值别忘了在数字后加f,如 float num=5.0f , 输入输出double型变量时用%lf而不是%d

2. 注意缩进,最好用Tab键缩进而非空格键

3. 变量和函数的名字要有意义,长度平均为8~10,最忌使用x,xx,a之类的名字

4. 大括号先成对写出,再往里面追加内容

5. 合理使用空行

6. 注释写在一行的后面或上面,不要写在下面. 更新代码时别忘了更新注释

7. 直接make或build, 不需要先compile再link

8. 调试时加倍注意边界情况

9. 为了减少手动输入的痛苦,调试时合理使用文件输入

10. TC中单步运行为F8, Trace into为F7; VC中单步运行为F10, Trace into为F11

11. 合理使用断点(breakpoint)和监视(watch)

12. VC中想要查看运行结果,可以在程序最后加上一个或两个getchar()

13. 不用的语句先注释掉,而不是删掉

14. 变量和函数名中合理使用大小写

15. 对数组初始化为0的工作,试试memset()函数

16. 运行时出现含有”access violation”字样的错误提示框,多半是指针错误或数组越界

17. 指针声明时和释放后马上赋值为0, 使用前尽量先检查它是否为0

18. for循环的头部内部要做其他事情

19. 浮点数永远存在误差!不要判断一个浮点数是否为0,取而代之的是判断它是否在0左右; 1.0/10.0并不等于0.1(可能是0.0999999999)

20. getchar()可能会把上一次的回车读入

21. 当文件读取完后,再试图读了一次,feof()才会返回真

22. 少用全局变量,尽量用参数传递信息

23. 指针也可以用”[ ]”,与数组相同

24. 合理使用条件表达式的”短路”功能,如 if(p!=0&&*p==’a’){…….}

25. 定义char *p=”……”;后不能修改字符串的内容,如 p[2]=’a’ 是错误的

26. 多用#define定义常量,少出现数字

27. return后不用加括号

28. 谨慎使用带参数的#define
以上是我从别的地方找的,主要是基本的语法,必须要掌握的,毕竟每一个小小的细节都能决定程序的失败与否。再有就是c语言是结构化语言,可以把一个问题分成好几个块结构,每个块结构就通过一个函数实现,注意每个块结构之间的衔接,每个函数在调用之前别忘了声明。多看些比较好的程序,自己再加强多练,慢工出细活,不要急于求成。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
asp.net我下载的一个博客网站,运行的时候怎么就打不开呢? asp.net网站网线拔了不能运行 急!!asp.net虚拟目录无法运行!!! 为什么在. net环境中运行ASP. NET应用程序时出现错? 10月法定节假日是哪几天 三星s4加密设备怎么取消 怎么样才能让脑子灵活开窍变聪明 刹车的技巧? 我的车险2015年1月11号到期我可以提前上吗 ...只听见声音,屏幕黑屏,我还没进房间呢就死机,鼠标可以动,黑屏,无法... 微信注册要发送验证码到指定号码上,可是提示发送不成功怎么办? 侠盗无双0。3怎么修改变成蜘蛛侠? 小鸡不吃东西站不起来怎么办 QQ号码忘记了,但是绑定了身份证,如何用身份证找回QQ号啊!急~~~ 哈利·波特与死圣的简介 QQ账号不记得了!怎么找回?可以用身份证找回吗? qq打客服可以找回么 中海油基地下属的监督监理技术公司待遇如何? 中海油负责国内LNG加气站建设的是哪个下属公司啊? 中海油下属的加油站待遇怎样? 海洋油田属于中海油的下属油田吗?还是中石油?或者中石化?? 我QQ账号被盗,身份验证不通过,大电话给客服了,填写了个人信息,可以通过吗,还有其它办法找回账号吗? 新时期教师职业道德修养的介绍 求几首伤感的歌啊!~~ 请问,前辈,中海油下属哪个分公司比较好?能源发展采技服如何? 中海油田服务股份有限公司下属单位有哪些?是所谓的七合一吗?具体是哪七个? 中石化、中石油、中海油下属油田分别有哪些啊?求解?? 一首忧伤的歌,其中一句歌词是:我只想陪你看日出日落,我只想为你唱一首歌!是什么歌? 学移动通信技术的,出去干什么工作好些 给我一点希望,唱着忧伤的歌是哪首歌的歌词? 避孕套破裂怎么办?用吃紧急避孕药吗 急急急急,,,呀 哪位学霸能告诉我怎么解释内能是状态函数??? 热量和内能都是系统状态的单值函数&quot;这种说法对吗 帮给找一下怎么,证明内能是一个状态函数?(要比较详细的证明过程,中英的都行) 内能是系统的状态函数,若某一体系从一开始出发经过一循环过程又回到 无纺布袋生产要哪些设备?哪里有买 无纺布制袋机多少钱 最便宜的 无纺布制袋机可行吗?制袋机厂家来做广告的滚。 无纺布制袋机的超声波机箱老亮红灯怎么回事 笔记本找不到无线网络信号怎么办? 找不到无线网络信号 冯奚乔怎死的? 怎么把电脑上面打不开的文件彻底删除? word 文档 收到邮件 点击哪里查看 怎么从word文档中筛选email地址? 手机号码没有开通跟电话卡注销了有关系吗? 残疾人申请养殖无息贷款怎么写 怎么知道狗配种成功 怎样判断狗交配成功 删掉了微信好友,但是又不知道和手机号,怎么加回?