一个好的C程序员应该做到:
1.在运行程序之前存盘
2.所有在程序中用到的常量都用预处理语句在程序开头定义
3.所有在程序中用到的函数都在程序开头声明
4.头文件的#ifndef
5.变量名和函数名使用有意思的英文单词或汉语拼音
6.尽量少用全局变量或不用全局变量
7.采用层次的书写程序格式,对for,while,if_else,do_while,switch_case
等控制语句或他们的多重嵌套,采用缩格结构
8.所有对应的{}都对齐
9.尽量用for,而不用while做记数循环
10.尽量不用goto语句
11.一个函数不宜处理太多的功能,保持函数的小型化,功能单一化
12.一个函数要保持自己的独立性,如同黑匣子一样,单进单出
13.函数的返回类型不要省略
14.用malloc()分配内存空间时,以后一定要用free()释放
15.打开文件后,记住在退出程序前要关闭
16.出错情况的处理
17.写上必要的注释
这里说的是一些基本的,经常遇到的情况,还有其他很多要注意的地方,在实
际编程中都会遇到.
我们应该怎么写程序?
第一阶段: 纯学习 和 入门
初学程序的大学,通常是在纸上写程序,然后去机房上机的时候,输入,运行。(调试基本不会。)
因为上机,机会是难得的,时间是宝贵的。那时候的策略:
1. 在纸上能写出正确到甚至完美的程序。
2. 尽快需要学会盲打,甚至买了一个键盘卡片来练手感,甚至有同学找来了小霸王学习机键盘。
总结,那时候应该是打下了良好的面向过程的编程基础。
今天看来,教材上的例子代码异常丑陋、风格垃圾、思路混乱,当时却视其为经典。不知道如今有无改善。
那时候书(教材和图书馆的)是唯一的学习入口。哪有机会可以时刻用PC?
第二阶段:进入状态
参加工作后,那时候公司网络时有限制,代码写了不少,一般程序都是现写现调,甚至于懒散到让编译器来检查输入的错误。
已经熟悉甚至依赖调试,不动脑子,凭本能去写逻辑和流程。主要的三大学习和日常借鉴入口:
开发工具的参考手册(MSDN)
codeProjectckbase等少数的几个网站
公司前辈的遗留源码
这种状况,一直持续到现在。
那时候基本策略: 快速找到并熟悉某个API某个MFC类,从MSDN
快速找到codeproject某个功能的例子代码,并实现。扩展前辈的功能等等。
总结: 大部分代码都自己写,从常用的基础功能库,到业务逻辑,到整体框架。
累的半死,拖了很长的时间。尤其是在费劲的做了2个完全一手打理的产品之后。
却有一种程序员常有的那种虚假的造物主感觉。
第三阶段: 迷茫
在几个产品,开发严重落后于进度,质量严重低于预期,并出现困局。
并在局部功能的开发能力和整体架构方面遇到个人发展到瓶颈。
时常能找到的安慰借口是 个人产能有限,并且人月是个神话。
再牛的小聪明和土办法,在科学家的论文面前,不堪一击!
明明只是一种坐井观天!!!闭门造车,出门肯定是车毁人亡。
网络时代,最大的特点就是开放。其实我们这个时代已经不一样了,
如今实现功能,甚至于一个solution,只要有足够的耐心,总能找到开源的东西。
于是我们需要的仅仅是这3个能力:
1. 英语读写能力,把需求写成几个关键词去搜索,能把下载的源码的接口文档看懂,能把某个论文的算法思路搞清楚
2.搜索能力,目标,开源源码、论文、算法描述
3.整合能力,目前几乎大部分开源源码都是linux下,整合到工程中,还是需要以前的编程积累。
于是,你知道怎么写 或者说 怎么用 程序了吗?