位段,小端存储,联合体的应用----例题及解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 位段,小端存储,联合体的应用----例题及解析
//int main()
//{
//unsigned char puc[4];
//struct tagPIM
//{//开辟四个内存
//    unsigned char UcPim1;//开辟一个字节,全部被自己占用
//    unsigned char UcData0:1;//只能开辟一个字节,char型,自己占用2Bit
//    unsigned char UcData1:2;//char型,自己占用2Bit
//    unsigned char UcData2:3;//剩下的4bit都给它
//
//}*pstPimData;//指针pstPimData指向结构体tagPIM
//
//pstPimData = (struct tagPIM*)puc;//位段存储
//memset(puc, 0, 4);//将内存全部清空为00000000 00000000 00000000 00000000
//pstPimData->UcPim1 = 2;//开辟一个字节,2的二进制00000010,全放,但是用完整个位段
//pstPimData->UcData0 = 3;//3的二进制00000011,只能占用1个bit,为1
//pstPimData->UcData1 = 4;//4的二进制00000100,只能占用2个bit,为00
//pstPimData->UcData2 = 5;//5的二进制00000101,能占用剩下的3个bit,为101
合并UcData0->2并补0,变为00101001,%02x为十六进制为29
//printf("%02x %02x %02x %02x\n", puc[0], puc[1], puc[2], puc[3]);//02 29 00 00
//return 0;
//}
//联合体存在对齐---共用空间
union Un
{
    short s[7];//2(最大对齐数short为7)*7(个数)=14
    int n//最大对齐数4
        //4和2的最大对齐数是4,所有14应浪费到16(4的倍数),所有16
};
int main()
{
    printf("%d\n", sizeof(union Un));//16
}
相关文章
|
27天前
|
监控 网络协议 算法
OSPFv2与OSPFv3的区别:全面解析与应用场景
OSPFv2与OSPFv3的区别:全面解析与应用场景
33 0
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
50 10
|
15天前
|
机器学习/深度学习 搜索推荐 API
淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践
在数字化时代,电商行业迅速发展,个性化、便捷性和高效性成为消费者新需求。淘宝/天猫推出的拍立淘API,利用图像识别技术,提供精准的购物搜索体验。本文深入探讨其原理、优势、应用场景及实现方法,助力电商技术和用户体验提升。
|
21天前
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
27 1
|
25天前
|
存储 安全 数据安全/隐私保护
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
PyPI 存储库中的 JarkaStealer:深入解析与防范措施
23 2
|
22天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
45 0
|
23天前
|
存储 监控 API
深入解析微服务架构及其在现代应用中的实践
深入解析微服务架构及其在现代应用中的实践
35 0
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0

推荐镜像

更多
下一篇
DataWorks