visual-c++ - MSVC(和icc)自动调用memset C++

标签 visual-c++ initialization memset overhead

我大量使用大数据结构,每次创建(通过放置新的)它时,编译器都会自动添加“memset”调用。即使在 Release 模式下,即使我将/SDL 和/GS 设置为 OFF。这绝对是多余的,它会产生一些我不需要的开销。 如何防止产生冗余的 memset 调用?

enter image description here

godbolt example

最佳答案

您可以实现 Tmp::Tmp() 构造函数来摆脱 memset,即:

struct Tmp
{
    String a0;
    String a1;
    String a2;

    Tmp() {}
};

https://godbolt.org/z/J6-C8S

关于visual-c++ - MSVC(和icc)自动调用memset C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183399/

相关文章:

c++ - 如何判断哪个文件叫c++程序?

c# - 了解 C# 字段初始化要求

C重新初始化数组

struct 的 c 指针在执行时导致段错误

c++ - Boost::Lambda 方法推导错误 MSVC9.0

C++ 结构和构造

C字符串连接问题函数

c++ - 以下代码是否可能存在内存泄漏?

C++ - 动态分配变量的作用域

c - Memsetting 指向数组的指针