Visual c++ MSVC(和icc)自动调用memset C++;
我一直在大量使用大数据结构,每次我创建(通过放置新的)它时,编译器都会自动添加“memset”调用。即使在释放模式下,即使我关闭了/SDL和/GS。这绝对是多余的,它会产生一些我不需要的开销。 如何防止产生冗余的memset调用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
您可以实现
Tmp::Tmp()
构造函数来摆脱memset
,即:
struct Tmp
{
String a0;
String a1;
String a2;
Tmp() {}
};
我想,至少在gcc中,您可以使用-ffreestanding,并在代码中放入自己的memset,而这些memset不起任何作用。或者尝试单独初始化结构变量..这可能会阻止编译器添加memset。如果我添加自己的memset或执行任何其他数据初始化(即使我不需要它们)-这没有帮助-MSVC以任何方式生成该额外memset