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

简介: #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)))

目录
相关文章
|
算法
【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱
562 1
|
11月前
|
编解码 UED
Qt侧边栏的动态切换:隐藏与显示技术详解
在现代用户界面设计中,侧边栏(Sidebar)是一个常见的组件,它为用户提供了导航和工具面板的功能。在某些应用场景下,我们可能需要动态地隐藏或显示侧边栏,以优化界面布局或提供更灵活的用户体验。本文将分享如何在Qt框架下实现侧边栏的隐藏与呈现,包括技术细节和代码示例。
984 3
|
4月前
|
存储 自然语言处理 算法
RAG系统文本分块优化指南:9种实用策略让检索精度翻倍
本文深入探讨了RAG系统中的九种文本分块策略。固定大小分块简单高效,但可能破坏语义完整性;基于句子和语义的分块保留上下文,适合语义任务;递归与滑动窗口分块灵活控制大小;层次化和主题分块适用于结构化内容;特定模态分块处理多媒体文档;智能代理分块则通过大语言模型实现动态优化。开发者需根据文档类型、需求及资源选择合适策略,以提升RAG系统的性能和用户体验。作者Cornellius Yudha Wijaya详细分析了各策略的技术特点与应用场景。
703 1
RAG系统文本分块优化指南:9种实用策略让检索精度翻倍
|
10月前
|
缓存 安全 编译器
【C语言】volatile 关键字详解
`volatile` 关键字在 C 语言中用于防止编译器对某些变量进行优化,确保每次访问该变量时都直接从内存中读取最新的值。它主要用于处理硬件寄存器和多线程中的共享变量。然而,`volatile` 不保证操作的原子性和顺序,因此在多线程环境中,仍然需要适当的同步机制来确保线程安全。
581 2
|
存储 人工智能 自然语言处理
轻松改造公众号:10分钟实现智能客服自动化!
在阿里云平台上,仅需10分钟即可将微信公众号(订阅号)升级为AI智能客服,提供7x24小时客户支持,显著提升用户体验。方案包括四步:创建大模型问答应用、搭建微信公众号连接流、引入AI智能客服以及增加私有知识库,确保客服能精准回答复杂咨询,助力业务竞争力提升。整个过程简单快捷,在免费试用额度内费用为零。
443 7
轻松改造公众号:10分钟实现智能客服自动化!
|
11月前
|
芯片
2节串联锂电池充电管理芯片,有5V升压,9-12V降压,快充升降压
2节串联锂电池供电电压范围为6V-8.4V,标称7.4V。根据输入电压不同,需选择不同模式的充电管理芯片。5V输入需升压型,9V、12V输入需降压型,5V-20V输入需升降压型。推荐PW4284、PW4084、PW4203等型号,适用于各种应用场景。
|
12月前
Axure设计之多级菜单导航教程(中继器)
在数字化时代,优化产品设计,提升用户界面交互,是产品设计着重考虑的点。针对传统菜单导航复杂繁琐的问题,本设计提出了一套灵活的菜单导航方案,结合中继器与动态面板,实现一键搜索、菜单收藏、多级菜单导航、点击展开收缩等交互功能,旨在提升领导满意度,增强产品设计体验。
524 2
|
编译器 调度
FreeRTOS任务的创建(动态方法和静态方法)
FreeRTOS任务的创建(动态方法和静态方法)
2118 0
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能医疗与健康管理
使用Python实现深度学习模型:智能医疗与健康管理 【8月更文挑战第2天】
524 4
使用Python实现深度学习模型:智能医疗与健康管理
|
数据可视化 API 调度
Pandas 2.2 中文官方教程和指南(十一·一)(1)
Pandas 2.2 中文官方教程和指南(十一·一)
181 1