struct的初始化

1、struct的初始化可以使用类似数组的方式,如下:
struct Student
{
int _Age;
string _Name;
};
Student stu = {26,"Andy"};
2、有两个地方需要注意:
a、顺序要保持一致,如下:
Student stu = {"Andy",26}; 编译报错
b、后面的可以不初始化
Student stu = {26}; 只初始化_Age
3、考虑下面的情况,Student当中有个字段,表示Student对象的大小,而在Debug和Release下,大小是不一样的,怎么办?
使用sizeof,如下:
struct Student
{
int _Size;
int _Age;
string _Name;
};
Student stu = {sizeof(stu),26,"Andy"};
4、注意:同一个数据类型,在Debug和Release模式下,占用的内存有可能会不一样。比如:
int :Debug和Release 一样,都是4个字节
string :Debug占用32个字节,Release占用28字节
5、在Debug模式下,对象本身有可能会多占用一些字节,同时,Debug模式下,对象的前后还会多占用一些字节(比如int 前后各4个字节),用于保存调试信息。

posted on 2015-06-27 20:26  Andy Niu  阅读(455)  评论(0编辑  收藏  举报