zoukankan      html  css  js  c++  java
  • 数组是否应该初始化?

        程序中的变量初次声明时,应该初始化。

        如: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)); 
        }

        从上面的效果来看,初始化和未初始化的程序的效率相差还是很大的。但是未初始化的程序安全性要差一些,所以个人的观点是程序规模比较小而且要被调用好多次,则可以不用初始化,其他情况一律初始化,毕竟安全第一嘛。

  • 相关阅读:
    Windows10 iis10 arr webfarm
    两个command的疑惑
    关于controller和apicontroller的跨域实现过滤器的不同
    抽象工厂
    c# 字体库跨域解决
    c# 父类的引用指向子类的实例
    垂直居中
    扇形导航
    2D变换
    京东放大镜效果
  • 原文地址:https://www.cnblogs.com/menggucaoyuan/p/2173321.html
Copyright © 2011-2022 走看看