昨天看了个帖子,有所得,关于struct占的字节问题

简介: 关于struct它所占的字节,大家都知道是它里面所有的变量所占字节的和,看看下面,大家是不是有点诧异啊,反正我是挺诧异的#include int main(void) { struct Test { char *pcName; sho...
关于struct它所占的字节,大家都知道是它里面所有的变量所占字节的和,看看下面,大家是不是有点诧异啊,反正我是挺诧异的
#include<stdio.h>
 
  
int main(void)
{
	struct Test
	{
		char *pcName;
		short sDate;
	};
	struct Test_1
	{
		char *pcName;
		char sDate;
	};
	struct Test_2
	{
		char *pcName;
		double sDate;
	};
	struct Test_3
	{
		char *pcName;
		short sDate;
		char a;
	};
	printf("char *和short = %d\n",sizeof(Test));
	printf("char *和char = %d\n",sizeof(Test_1));
	printf("char *和double = %d\n",sizeof(Test_2));
	printf("char,char *和short = %d\n",sizeof(Test_3));
	
	return 0;
}

 
 
后来发现,它有个对齐的法则,就是说它以占用最大的那个变量对齐,如果有两个变量,它的内存是以占用最多字节的变量的成倍来算的。

目录
相关文章
|
8月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
JavaScript随手笔记 --- 对数据进行判断最大位数是否超过八位
|
存储
OJ题库:统计二进制中1的个数(三种方法)
OJ题库:统计二进制中1的个数(三种方法)
93 0
|
5月前
|
缓存 网络协议 固态存储
[译] 首字节时间 (TTFB) 如何影响了网站性能
[译] 首字节时间 (TTFB) 如何影响了网站性能
|
7月前
1064 朋友数 (20 分) //感觉题目有问题。
1064 朋友数 (20 分) //感觉题目有问题。
|
8月前
|
算法 大数据 程序员
|
存储
华为机试每日一练--第十一题: 求int型正整数在内存中存储时1的个数
华为机试每日一练--第十一题: 求int型正整数在内存中存储时1的个数
华为机试每日一练--第十一题: 求int型正整数在内存中存储时1的个数
006.显示变量所占字节数
006.显示变量所占字节数
113 0
6-9 统计个位数字 (15 分)
6-9 统计个位数字 (15 分)
176 0
|
测试技术
软件测试面试题: 字节所占空间?
软件测试面试题: 字节所占空间?
97 0