我看到的每个地方都有人大声争论未初始化的变量是不好的,我当然同意并理解为什么——但是;我的问题是,是否存在您不想这样做的情况?
例如取代码:
char arrBuffer[1024] = { '\0' };
将整个数组设为 NULL 是否会对性能产生影响,而不是使用数组而不初始化它?
最佳答案
我假定堆栈初始化,因为静态数组是自动初始化的。
G++输出
char whatever[2567] = {'\0'};
8048530: 8d 95 f5 f5 ff ff lea -0xa0b(%ebp),%edx
8048536: b8 07 0a 00 00 mov $0xa07,%eax
804853b: 89 44 24 08 mov %eax,0x8(%esp)
804853f: c7 44 24 04 00 00 00 movl $0x0,0x4(%esp)
8048546: 00
8048547: 89 14 24 mov %edx,(%esp)
804854a: e8 b9 fe ff ff call 8048408 <memset@plt>
因此,您使用 {'\0'} 进行初始化并完成对 memset 的调用,所以是的,您的性能受到了影响。
关于c++ - 在 C++ 中初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1770081/