1、C 语言中的 struct
在C语言中,定义一个 struct 变量的同时不能对其(成员)进行初始化 ,即成员没有默认值。它只能在定义对象时,对对象的成员变量进行初始化。
如:
struct widget
{
int a;
int b;
bool flag;
};
//1
widget w = {0, 0, false};
//or 2
widget w;
w.a = 0;
w.b = 0;
w.flag = false;
2、C++中的struct
由于在C++中,struct 其功能就是一个class,只是它的成员变量默认为public,即可以利用C++类中的初始化列表在定义struct的同时对其成员进行初始化。
如:
struct widget
{
widget():a(0), b(0), flag(false){}
int a;
int b;
bool flag;
};
References:
http://stackoverflow.com/questions/5465896/about-default-c-struct-values-what-about-this-code