初始化零:ZeroMemory、memset、{0x00}的区别

来源:互联网 发布:如何在淘宝上买av资源 编辑:程序博客网 时间:2024/05/15 13:27

C++中,结构,数组,类对象等初始化,一般情况下是需要初始化为零,初始化为零又有好几种情况,下面结合自己编程经验,浅谈一下。

 

1.memset函数是C库提供的,把某个对象初始化为某值,如:memset(this, 0, sizeof(this);

2.ZeroMemory函数是Windows平台提供的宏定义,但内部是调用memset,初始化为0;

3.{0x00}是 将成品变量初始化为0,若结构体有虚函数,{0x00}编译出错;ZeroMemory是将成员函数和成员变量初始化为0,若结构体有虚函数,则编译通过,运行期零指针出错。