c++ - 此代码更改的目的是什么?

标签 c++

我正在尝试了解某人最近所做的代码更改的含义/副作用/优点。变化如下:

原创

static List<type1> Data;

已修改

static List<type1> & getData (void)
{
    static List<type1> * iList = new List<type1>;
    return * iList;
}
#define Data getData()

改变的目的是什么?

最佳答案

我能看到的修订版的好处是“初始化时间”问题。

旧代码在调用 main() 之前触发了初始化。

新代码直到第一次调用getData()才会触发初始化;如果从未调用该函数,则无需为初始化未使用的变量付费。 (次要)缺点是每次使用函数时都会在生成的代码中进行初始化检查,并且每次需要访问数据列表时都会调用函数。

关于c++ - 此代码更改的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865164/

相关文章:

c++ -/MD 和/MDd(使用运行时库)有什么区别?

c++ - netbeans 不显示 C++ 输出

c++ - 与C++中的多个字符进行比较

c++ - 如何提高 Visual C++ 编译时间?

c++ - 如何将 unique_ptr 与 operator new 一起使用

c++ - 在 C++ 中减少 Double 的位数

c++ - 为什么内存分配器不主动将释放的内存返回给操作系统?

c++ - 解析 vector c++中的字符串

c++ - 哪个编译器最适合刚开始学习 C++ 的人?

c++ - vector 数学 - 查找对象是否朝向或远离某个点移动