做合成照片的国外网站,公司网站上传不了图片,怎样建立企业网站,个人网站名称怎么取容易备案结构体#xff1a; 一系列具有相同类型或不同类型的数据构成的数据集合#xff0c;也叫结构 结构体可以用来封装一些属性来组成新的类型。 结构体的大小#xff1a; 结构体的大小不是结构体元素单纯相加。内存对齐#xff08;若计算机使用32位字长的cpu#xff0c;对32位的… 结构体 一系列具有相同类型或不同类型的数据构成的数据集合也叫结构 结构体可以用来封装一些属性来组成新的类型。 结构体的大小 结构体的大小不是结构体元素单纯相加。内存对齐若计算机使用32位字长的cpu对32位的cpu而言取四个字节的数要比取一个字节的数更高效。因此在结构体中每个成员的首地址都是4的整数倍取数据元素时会更高效也更方便 每个特定平台上的编译器都有自己默认“对齐系数”对齐模数 程序员可以通过预编译命令#pragmapackn,n1,2,4,8,16来改变这一系数n就是对齐系数 C语言结构体对齐步骤 1.结构体各成员对齐 2.结构体总体对齐 C语言结构体对齐规则 1.结构体struct的数据成员第一个数据成员存放的地址为结构体偏移量为0的地址处 2.其它结构体成员自身对齐时存放的地址为min{有效对齐值为自身对齐值指定对齐值}的最小整数倍的地址处 自身对齐值结构体变量里每个成员的自身大小 指定对齐值有宏#pragma packN指定的值N一定是2的幂次方。如124816等。 如果没有定义宏32位主机上默认指定对齐值为464位默认对齐值为8ARM CPU默认指定对齐值为8 有效对齐值结构体成员自身对齐时有效对齐值为自身对齐值与指定对齐值中较小的一个 3.总体对齐字节大小是min{所有成员中自身对齐值最大的指定对齐值}的整数倍 构造函数初始化结构体 1.为什么要使用构造函数初始化结构体 a.如果有某个成员未被初始化那么在这种情况下跟随在该成员后面的成员都不能初始化 b.如果结构体包括任何诸如字符串之类的对象那么在许多编译器上将无法运行 因此可以使用构造函数来初始化结构体成员变量与初始化类成员变量相同。
以下是一个名为 Employee 的结构体的声明语句它包含一个具有两参数的构造函数以便在创建一个 Employee 变量而不向其传递任何参数时提供默认值
struct Employee
{string name; // 员工姓名int vacationDays, // 允许的年假daysUsed; //已使用的年假天数Employee (string n ,int d 0) // 构造函数{name n;vacationDays 10;daysUsed d;}
};