[c/c++]不要给局部变量赋一个初始化值。
2013-01-08 14:32
211 查看
大约是很久很久以前吧,编码风格建议给局部在声明的时候就赋一个初始化的值。好像这样...
理由是,如果你忘记在使用这个变量前给他赋值了,那么有一个默认的值可以让你的程序"安全"一点。
不过现在我觉得好的编码风格是不要给局部变量赋这个初始化值,因为现在的编译器已经变得聪明了,如果引用一个未初始化得局部变量,编译器会报出一个警告。
如果你真的忘记了写 bar = getXXX();这一行,那么这个错误会在编译的时候就被抓到。
反而,给这样的局部变量赋初始化值是一种不好的编程习惯了。假设写了= NULL;然后你真的真的忘记写bar = getXXX();了,编译器不会抓住这个bug. 只有等到运行这个程序的时候才能发现这个问题,或者更糟糕的是这个bug变成一个隐藏很深的东西.
void foo(){ char* bar = NULL; /* some other code */ bar = getXXX(); /* code to use bar */ };
理由是,如果你忘记在使用这个变量前给他赋值了,那么有一个默认的值可以让你的程序"安全"一点。
不过现在我觉得好的编码风格是不要给局部变量赋这个初始化值,因为现在的编译器已经变得聪明了,如果引用一个未初始化得局部变量,编译器会报出一个警告。
如果你真的忘记了写 bar = getXXX();这一行,那么这个错误会在编译的时候就被抓到。
反而,给这样的局部变量赋初始化值是一种不好的编程习惯了。假设写了= NULL;然后你真的真的忘记写bar = getXXX();了,编译器不会抓住这个bug. 只有等到运行这个程序的时候才能发现这个问题,或者更糟糕的是这个bug变成一个隐藏很深的东西.
相关文章推荐
- 为什么C++中千万不要返回局部对象或变量的引用和指针
- 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用 (转自effective c++ second edition)
- 为什么C++中千万不要返回局部对象或变量的引用和指针
- effective C++笔记之条款31、32: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针所指对象的引用、尽可能地推迟变量的定义
- c++中局部变量未初始化引发的离奇惨案~~
- C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
- c++中局部变量初始化的问题
- C/C++中全局变量,静态局部变量,局部变量的初始化问题
- 需要定义一个变量数组,但是C++ 数组无法用变量初始化,解决方案
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++变量初始化问题总结
- 局部栈变量不要传引用给可能切换线程的函数
- C++ 的一个问题的理解(私有变量成员)
- C++变量初始化与基本数据类型
- C/C++中如何判断一个输入的变量是否和其定义的类型一致
- C++成员变量初始化列表和变量初始化顺序
- C++中各种类型的成员变量的初始化方法
- (转载)你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化
- C/C++语言中变量作用域:局部变量,全局变量,文件级变量
- 【原创】C++变量初始化