我正在阅读nginx的源代码并发现它没有初始化许多数值变量,包括ngx_int_t ngx_last_process;,这里ngx_int_t定义为long int
#if 0
ngx_last_process = 0;
#endif
Run Code Online (Sandbox Code Playgroud)
那么@Igor Sysoev认为没有必要进行初始化?
但是在程序中它假定默认值是0:
for (s = 0; s < ngx_last_process; s++) {
if (ngx_processes[s].pid == -1) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
是否保证未初始化的变量0在c中具有价值?
我知道有时如果你没有初始化int,你会得到一个随机数,如果你打印整数.
但是将所有内容初始化为零似乎有点愚蠢.
我问,因为我正在评论我的C项目并且我非常直接进行缩进并且它完全编译(90/90谢谢Stackoverflow)但是我想在样式点上得到10/10.
所以,问题是:何时适合初始化,何时应该声明一个变量:
int a = 0;
Run Code Online (Sandbox Code Playgroud)
与
int a;
Run Code Online (Sandbox Code Playgroud)