数组是否应该初始化?
2011-09-10 20:24
225 查看
程序中的变量初次声明时,应该初始化。
如:int i = 0;
但是今天一个朋友给了如下两个测试程序,用gcc编译后,效率还是相差很多的。
下面的函数func中数组没有初始化,函数被执行1000000次,则运行3ms。
void func(void)
{
char array[512];
}
int main(int argc, char* argv[])
{
int i = 0;
for (i = 0; i < 1000000; i++)
{
func();
}
}
如果把func函数中数组初始化,则运行时间为512ms。
void func(void)
{
char array[512] = {0};
}
or:
void func(void)
{
char array[512];
memset(array, 0, sizeof(array));
}
从上面的效果来看,初始化和未初始化的程序的效率相差还是很大的。但是未初始化的程序安全性要差一些,所以个人的观点是程序规模比较小而且要被调用好多次,则可以不用初始化,其他情况一律初始化,毕竟安全第一嘛。
如:int i = 0;
但是今天一个朋友给了如下两个测试程序,用gcc编译后,效率还是相差很多的。
下面的函数func中数组没有初始化,函数被执行1000000次,则运行3ms。
void func(void)
{
char array[512];
}
int main(int argc, char* argv[])
{
int i = 0;
for (i = 0; i < 1000000; i++)
{
func();
}
}
如果把func函数中数组初始化,则运行时间为512ms。
void func(void)
{
char array[512] = {0};
}
or:
void func(void)
{
char array[512];
memset(array, 0, sizeof(array));
}
从上面的效果来看,初始化和未初始化的程序的效率相差还是很大的。但是未初始化的程序安全性要差一些,所以个人的观点是程序规模比较小而且要被调用好多次,则可以不用初始化,其他情况一律初始化,毕竟安全第一嘛。
相关文章推荐
- 数组是否应该初始化?
- 关于数组的初始化是否为0
- 关于数组的初始化是否为0
- 如何判断数组是否已初始化,定义了维数
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- 判断数组是否等于空的方法
- 使用第三方开源库是否应该做二次封装
- Java数组的声明和初始化
- 字符数组初始化和'/0'
- c语言一维数组初始化
- 指针数组的初始化方式和和用二维数组做形参
- Win 10只用Edge浏览器?是否应该卸载掉IE
- 字符数组的初始化
- 动态分配内存 and malloc&new and 数组的动态分配、初始化(memset)和撤销(delete)
- 数组初始化
- scala(6)-数组的初始化以及循环
- 判断给定数组是否是二叉树的前序或者后序遍历结果
- 【算法题】找出两个已序数组,是否含有相同的数字
- c++ 如何批量初始化数组 fill和fill_n函数的应用
- 字符数组初始化