c/c++软件开发的注意事项
第一部分软件编程的时间分配概况
高效率的程序员并不是敲键盘的速度比别人快,而是他有着良好的编程习惯,节省了别人浪费的时间。因此,要想提高自己的编程效率,根本在于怎么少浪费时间。只要能把别人浪费的时间节省下来,你的效率就可以快过别人,甚至数倍于别人。要想节省时间,当然首先需要明白编程中耗费时间的分配情况。
程序员软件开发的几个阶段:
1、分析设计,
分析设计的前提是充分理解需求说明文档,然后分析如何实现它们,并形成设计文档。分析设计的目的是明晰软件架构,软件算法和功能的逻辑,得出必要的设计文档,奠定后面编码的基础。合理的设计可以节省后面编码的时间,不合理甚至错误的设计将导致工作的重新开始,没有设计贸然开始编程会导致一些难以预见的逻辑错误。总之,较好的设计事半功倍。
2、程序编码
依照语法、设计文档编码。
3、程序测试
测试的目的是检测程序有没有问题,一旦发现问题,问题的定位越准,效率就越高。因此,程序中需要输出必要的提示信息。
4、软件调试
测试时发现程序有BUG,自然需要调试。显然,遇到的问题越少,调试的时间就越少。没有什么比一次性写好,不用调试更快的方法了。
时间虽然无法具体分配到各个阶段,但是第一和第二阶段的质量决定了后面两阶段的时间花费,质量越高,测试和调试时间花费越少。反过来,质量越差,测试和调试时间越长。
第二部分 c/c++中常见的错误
软件编程的过程中,程序员所犯的并不一定是重大错误,反而一些常见的错误屡见不鲜。这些错误严重影响到编程中测试和调试的时间。这一部分总结一下,时时提醒自己,告诫自己避免这些错误。
常见的错误有:
1、内存泄露
在c/c++中,内存管理器不会帮助你自动回收不再使用的内存,不管在什么情况下,采取谨慎的态度,杜绝内存泄露的出现,都是上策。尽管一些工具可以帮助我们检查内存泄露问题,但是编程时还是应该仔细一点,尽早排除这类错误,工具只是用作验证的手段。
2、内存越界访问
1)读越界,即读了不属于自己的数据,如果所读的内存地址是无效的,程度立刻就崩溃了。如果所读内存地址是有效的,虽然读的时候不会出问题,但由于读到的数据是随机的,它会产生不可预料的后果。
2)写越界,也叫缓冲区溢出
相关文档:
C#动态创建菜单
一、加入所需数据
1、创建数据表:
create table t_SysMenu(
FMenuName varchar(50) not null ,
FMenuText varchar(50) not null ,
FMenuEvent varchar(100) ,
FMenuShortcutKeys varchar(50) n ......
本文摘自I18nGuy
主页的一篇内容,原文地址:http://www.i18nguy.com/unicode/c-unicode.zh-CN.html
这份文档简要的说明了如何修改你的C/C++代码使之支持Unicode。在这里并不准备
解释太多相关的技术细节并且我得假定你已经基本熟悉Microsoft支持Unicode的方式。
它的主要目的是方便你查询相关的数据类型和函数,以及修 ......
在<TCHAR.h>头文件里,有这么一组操作文件的宏
#define _tfdopen _wfdopen
#define _tfsopen _wfsopen
#define _tfopen _wfope ......
编译:C程序直接编译成标准的二进制可执行的代码,但C#的源程序并不是被编译成二进制可执行的形式,而是一种中间语言(MSIL),类似JAVA中的字节码
结构体:C#的结构体与C++的结构体相似。但是C#的结构体与类是不同的,而且不支持继承。
预编译:C#中存在预编译的指令支持条件编译,警告,错误报告和编译行控制。其指令 ......
搞了几天的问题。编译一个文件时,老是出下面这个错.
checking for C compiler default output file name… configure: error: C compiler cannot create executables
没法子,找高人帮我处理,哈哈….记录下来.因为64位的机器,默认对CFLAGS的这是进行了设置,所以使用下面的命令清空他就行了,这样软件就不会报 ......