您的位置:首页 > 编程语言 > C语言/C++

C语言编程中的常见错误总结

2013-08-25 17:21 357 查看
编程中, 经常会遇到这样或者那样的错误, 除了一部分是因为需求、分析设计的问题外, 另一部分则是和代码相关的。 总结一下代码相关的常见错误,欢迎补充!

1.  内存泄露    

     内存只申请使用, 异常地方处理却没有释放掉。

2.  内存(数组)越界访问

    数组越界很常见, 尤其是使用全局变量数组变量。 

3.  野指针

    free的指针, 要及时指向NULL,否则就是野指针。

4. 访问空指针

   指针使用, 要时刻注意是否为NULL。

5. 引用未初始化的变量

    养成任何变量的定义, 都要进行初始化,尤其是结构体变量, 否则会因为未初始化造成的随机值而出现莫名其妙的bug。

6. 指针运算错误

   指针的运算, 尤其是++, +1, --, -1 等操作, 要按照指针类型来处理

7. 内存分配/释放不配对

 内存的管理, 要时刻注意分配和释放要一起出现, 就跟代码段的括号要成对出现。

8.  返回指向临时变量的指针

    深入了解关于函数调用的本质, 了解函数的参数和返回值, 避免出现这类错误。

9.   试图修改常量

     这个在字符串的处理中经常出现, 深入了解字符串常量的机制是关键。

10. 误解函数传值与传引用

    同8 , 函数的参数传递,尤其是指针参数的传递,要理解深刻。

11. 栈溢出

   嵌入式编程容易出现, 从效率方面讲, C语言的函数传递, 一般建议用指针, 特别是针对大结构体的时候。

12. 符号重名

   采用规范的命名机制, 应该就不会出现。 比如全局变量以g_开头, 宏全部大写等

13. 字节对齐

   这个和CPU平台相关, 一般都是4的整数倍。

14. 字节顺序

    网络通信编程中经常遇到, 大端字节顺序和小端字节顺序, 尤其是针对CPU发通信协议包的时候, 要注意16bit 和 32 bit的数据和  相关的结构体。

15.  忘记函数的返回值

   函数返回值要明确, 好的习惯是即使是void的函数, 也要return 。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: