C语言定义结构体时注意成员变量的类型和声明顺序
来源:互联网 发布:nginx 浏览器缓存设置 编辑:程序博客网 时间:2024/05/16 02:07
定义结构体时候,结构体内的变量的声明顺序决定了结构体所占用的内存大小(内存的边界对齐原因)。
不多说,直接上代码:
#include <stdio.h>#include <stdlib.h>#include <iostream>#include <string>#include <cstring>using namespace std;struct node1 //这个node占了32个字节{ int a; float f;//a 和 f 一共占8个字节 char c;//虽然c只有一个字节,但单独占了8个字节(需要内存对齐) double d;// 很显然,占8个字节 struct node* next;//指针变量虽然4个字节,但也单独占8个字节};struct node2 //这个node占了24个字节,比上一个node要节省内存{ int a; float f;//a 和 f 一共占8个字节 char c; struct node* next;//c和next 一共占用8个字节 double d;//占用8个字节};int main(){ struct node1* p1; struct node1 anode1; struct node2* p2; struct node2 anode2; printf("%d %d\n",sizeof(p1),sizeof(anode1)); printf("%d %d\n",sizeof(p2),sizeof(anode2)); return 0;}运行结果:
4 32
4 24
0 0
- C语言定义结构体时注意成员变量的类型和声明顺序
- C语言结构体类型声明和定义标准形式
- C 语言变量的声明和定义
- c语言变量的声明和定义
- C语言struct结构类型定义和结构变量说明
- C语言中变量声明和定义
- C语言中变量声明和定义
- C语言中变量和函数的声明与定义
- C语言中变量和函数的声明与定义
- C语言中变量的定义和声明
- C语言 变量声明和定义的区别
- C语言中变量的复杂声明和定义
- C语言 变量声明和定义的区别
- C语言中变量的定义&声明
- c语言中 结构变量,结构类型标示,结构类型定义的区别
- 【C语言提高36】结构体类型和变量定义及基本操作
- 声明和定义变量、const限定符和引用、简单的类类型需注意点
- C语言 struct结构体的变量声明加冒号
- sql 视图 按where条件多个字段取一个
- html5相关知识
- switch老化时间过长导致主机不通解决一例
- hdoj 超级楼梯
- MovieClip.lineTo 方法
- C语言定义结构体时注意成员变量的类型和声明顺序
- python easy_install 的简单安装和使用
- Linux下查看文件和文件夹大小的df和du命令
- 上海品牌策划案例如何衡量强弱
- git fetch 和 pull
- linux系统下【用户切换、注销、锁住屏幕】
- VMware网络设置的三种方式 Host-only连接方式、 桥接 、NAT
- ps 曲线命令 色阶
- Create OnCreate OnInitialUpdate OnCreateClient 构造函数之间关系