C++关键字struct

Posted gdut-gordon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++关键字struct相关的知识,希望对你有一定的参考价值。

网址连接

https://www.cnblogs.com/zhengfa-af/p/8144786.html

 

主要内容:

1. C语言中,结构体的3中不同声明和定义方式;

2. struct在C和C++中的区别。C++可以在struct中添加函数,类似于class;

3. C++中,struct和class的区别。

struct的成员默认权限是public,class的成员默认权限是private;

struct的默认继承方式是public,class的默认继承方式是private;

4. 结构体的作用——封装;

5. 结构体的大小和内存对齐;

为了提高存储的速度,VC对结构体内的变量存储的起始地址进行“对齐”操作。

1)默认对齐方式:结构体中每个成员的起始地址相对于结构体内存起始地址的偏移量必须是当前成员所占用内存大小(字节数量)的倍数。同时,VC为了保证结构体的内存大小是字节边界数(即结构中占用内存最大的成员类型的字节数)的倍数,会在最后一个变量申请内存后,根据需要充填相应的字节数。

2)在VC中提供了#pragmapack(n)来设定变量以n字节对齐方式。

 

技术图片

 

以上是关于C++关键字struct的主要内容,如果未能解决你的问题,请参考以下文章

struct在C和C++中的使用总结

CC++中的 struct 关键字详解

10.6 C++类与结构体类型

c++ struct与class

C++ class struct

数据结构编程中的struct能完全用class代替吗?