结构体对齐的方式(自动对齐和手动对齐)

简介: #include //默认情况下,结构体一般在内存中的自动对齐格式是4个字节 //结构体设置手动对齐 //如果这里是4,那么下面的打印就是8 //如果这里是2,那么下面的打印就是6 //如果这里是1,那么下面的打印就是5 #pragma pack(4)struct mystu{ char a ; int b ;};#pragma pack()int main(void){ printf("str:%d\n",sizeof(struct mystu)); return 0 ;}自动对齐不需要加#pragma pack这个宏。
#include <stdio.h>

//默认情况下,结构体一般在内存中的自动对齐格式是4个字节 

//结构体设置手动对齐 
//如果这里是4,那么下面的打印就是8     
//如果这里是2,那么下面的打印就是6    
//如果这里是1,那么下面的打印就是5 
#pragma pack(4)
struct mystu
{
	char a ; 
	int  b ;
};
#pragma pack()

int main(void)
{
	printf("str:%d\n",sizeof(struct mystu));
	return 0 ;
}

自动对齐不需要加#pragma pack这个宏。

另外,GCC推荐的对齐指令如下:

_attribute_((packed))和_attribute_((aligned(n)))

目录
相关文章
|
1月前
单元格内容的对齐方式
单元格内容的对齐方式。
14 0
|
7月前
|
编译器 Linux C语言
什么是结构体和结构体的对齐规则
什么是结构体,为什么会用到结构体?C语言本身存在一些内置数据类型(比如int char float double 数组等),但这些不能满足我们的需要,我们创建了结构体来自定义自己需要的类型。
81 0
|
6月前
|
前端开发 容器
面试官:居中对齐有哪些实现方式?
面试官:居中对齐有哪些实现方式?
35 0
|
7月前
|
数据采集 人工智能 自然语言处理
我们要对齐什么——从对齐任务类型与对齐目标明确数据收集准则
在Modelscope活动中,主办方欲通过模型盲测收集并整理一批人类反馈数据。本次我在数据的收集过程之外,根据问答与模型的输出,结合论文From Instructions to Intrinsic Human Values -- A Survey of Alignment Goals for Big Models,具体探究了本次实验过程中的对齐目标。
279 0
03:对齐输出
03:对齐输出
83 0
|
算法 前端开发
居中对齐的几种方法
居中对齐的几种方法
113 0
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
915 0
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
<布局>子级相对级居中对齐的几种方式
居中 一. 父元素相对定位, 子元素绝对定位,然后右下偏移top: 50%; left: 50%; 再反向偏移transform: transtlate(-50%, -50%), 如果知道子元素的宽高, 也可以直接把反向偏移写死 .
900 0