c/c++软件开发的注意事项
第一部分软件编程的时间分配概况
高效率的程序员并不是敲键盘的速度比别人快,而是他有着良好的编程习惯,节省了别人浪费的时间。因此,要想提高自己的编程效率,根本在于怎么少浪费时间。只要能把别人浪费的时间节省下来,你的效率就可以快过别人,甚至数倍于别人。要想节省时间,当然首先需要明白编程中耗费时间的分配情况。
程序员软件开发的几个阶段:
1、分析设计,
分析设计的前提是充分理解需求说明文档,然后分析如何实现它们,并形成设计文档。分析设计的目的是明晰软件架构,软件算法和功能的逻辑,得出必要的设计文档,奠定后面编码的基础。合理的设计可以节省后面编码的时间,不合理甚至错误的设计将导致工作的重新开始,没有设计贸然开始编程会导致一些难以预见的逻辑错误。总之,较好的设计事半功倍。
2、程序编码
依照语法、设计文档编码。
3、程序测试
测试的目的是检测程序有没有问题,一旦发现问题,问题的定位越准,效率就越高。因此,程序中需要输出必要的提示信息。
4、软件调试
测试时发现程序有BUG,自然需要调试。显然,遇到的问题越少,调试的时间就越少。没有什么比一次性写好,不用调试更快的方法了。
时间虽然无法具体分配到各个阶段,但是第一和第二阶段的质量决定了后面两阶段的时间花费,质量越高,测试和调试时间花费越少。反过来,质量越差,测试和调试时间越长。
第二部分 c/c++中常见的错误
软件编程的过程中,程序员所犯的并不一定是重大错误,反而一些常见的错误屡见不鲜。这些错误严重影响到编程中测试和调试的时间。这一部分总结一下,时时提醒自己,告诫自己避免这些错误。
常见的错误有:
1、内存泄露
在c/c++中,内存管理器不会帮助你自动回收不再使用的内存,不管在什么情况下,采取谨慎的态度,杜绝内存泄露的出现,都是上策。尽管一些工具可以帮助我们检查内存泄露问题,但是编程时还是应该仔细一点,尽早排除这类错误,工具只是用作验证的手段。
2、内存越界访问
1)读越界,即读了不属于自己的数据,如果所读的内存地址是无效的,程度立刻就崩溃了。如果所读内存地址是有效的,虽然读的时候不会出问题,但由于读到的数据是随机的,它会产生不可预料的后果。
2)写越界,也叫缓冲区溢出
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
前几天写了关于Keil与C/C++混合编程的若干问题,今天写的是继续前面的。
在使用C/C++混合编程的时候,程序运行到类里面的虚拟函数时死掉,查看其vptr值为0x00000000,这时候不知道怎么解决,后来自己编了一个实例程序可以通过,发现vptr的值是在__main里面的& ......
这种需求应该就没C++程序调用C函数需求多了.目前的实现基本只有一类方法,即通过处理被调用的C++文件.
文
中给出的仍然是完整的,具体的,但又最基本最简单的实现,至于理论性的东西在网上很容易搜索的到.这里是针对调用C++的成员函数的实现.
aa.h
class AA {
int i;
public:
& ......
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
&nbs ......
公司安排开始做服务器,没有接触过这些东西。从零开始学习。
项目是做个聊天系统客户端用flex,服务器用C++,让我先出Demo。
服务器部分参照Windows网络编程一书中的select例子,基本一样,只是把例子中的的单个回应消息改成了群发消息。
虽然我对select模型还不熟悉,但是我知道如果要在一个套接字上发消息就必须设置FD ......