- 主题:局部变量有必要初始化为0吗
编译器对局部变量检查成本很低,默认会给初始化0吗
--
FROM 112.64.184.*
那为什么没产生告警,我都开了-Wall
【 在 z16166 的大作中提到: 】
: 不会默认初始化为0
: 栈变量初始化需要用指令来实现,编译器没必要给你插入不需要的指令,搞大exe文件尺寸,也增大执行开销。
--
FROM 112.64.184.*
#include <stdio.h>
#include <string.h>
int main(void)
{
char i[100];
memset(i,0,100);
printf("i1=%c",i[1]);
return 0;
}
~
【 在 z16166 的大作中提到: 】
: 你这属于让人摸不着头脑的问题
: 既没贴代码,也没说明你想要啥效果
:
--
FROM 112.64.184.*
上面的代码我发现不加memset就会告警,加了就没有,编译期这么智能?
【 在 freyoneby 的大作中提到: 】
: #include <stdio.h>
: #include <string.h>
: int main(void)
: ...................
--
FROM 112.64.184.*