Visual c++ MSVC(和icc)自动调用memset C++;

Visual c++ MSVC(和icc)自动调用memset C++;,visual-c++,initialization,memset,overhead,Visual C++,Initialization,Memset,Overhead,我一直在大量使用大数据结构,每次我创建(通过放置新的)它时,编译器都会自动添加“memset”调用。即使在释放模式下,即使我关闭了/SDL和/GS。这绝对是多余的,它会产生一些我不需要的开销。 如何防止产生冗余的memset调用 您可以实现Tmp::Tmp()构造函数来摆脱memset,即: struct Tmp { String a0; String a1; String a2; Tmp() {} }; 我想,至少在gcc中,您可以使用-ffreestan

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


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

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

    Tmp() {}
};

我想,至少在gcc中,您可以使用-ffreestanding,并在代码中放入自己的memset,而这些memset不起任何作用。或者尝试单独初始化结构变量..这可能会阻止编译器添加memset。如果我添加自己的memset或执行任何其他数据初始化(即使我不需要它们)-这没有帮助-MSVC以任何方式生成该额外memset