自学嵌入式 day 17- c语言-第11章 结构体与共用体 第12章 位运算
第十一章 结构体与共用体11.1 结构体声明structStudent//结构名符合标识符规则第一个字母大写{int id;char name;float score;};定义struct Student(结构名) s(变量名);s.id 1;//“ . ”结构体运算符优先级为1表达式为int 型strcpy(s.name,zhangsan);s.score 77;作用将不相关的内容打包封装在一起可统一引用。1声明可放在头文件中可在声明后定义变量具有全局作用域是全局变量。2初始化struct Student s {1,zhangsan,77};次序于声明顺序一致且可选择元素初始化 s {.id 1,.score 77};结构体成员部分初始化。3结构体变量与变量之间可整体赋值。考点下列结果为printf(%d\n,sizeof(struct Student));内存对齐cpu与RAM之间由地址总线数据总线、控制总线连接其中数据总线有32根一次性传递32个比特也就是4个字节cpu访问时以4个字节为单位所以系统存储数据时会将变量的地址放在可被四整除的位置上方便cpu访问这个过程为内存对齐。解法1默认按照计算机位数对齐若计算机位数为64则最终大小必须为64 / 8 8的整数倍。2从结构体成员中查找字节数最大的成员最终大小按此成员大小对齐。3把每个成员按照声明顺序依次存入内存偏移量 / sizeof成员必须整除。注1- :指向结构体成员运算符当成员用指针指向时可用。2结构体不可整体比较可被整体赋值。11.2 共用体声明union 共用体名{...} ;1成员共享内存空间从字节的起始部分开始共享。2其值会被最后成员的值覆盖。用法判断小端存储union Demo{int i;char j;};int main(void){union Demo s ;s.i 1;if(s.j 1){puts(little);}else{puts(big);}}补充可用指针判断小端存储int main(void){int i 1;char *j (char *) i;if(*j 1){puts(little);}}11.3 枚举类型声明enum 枚举类型名{...};定义enum 枚举类型名 变量名11.4 用typedef定义类型typedef 数据类型 数据名好处使用类型时可简化复杂的类型名称坏处代码可读性降低第十二章 位运算操作数必须是整形或者与整形相兼容的类型。12.1 位运算符1按位与- 指定位清零参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。2按位或- | 指定位置1两个相应的二进制位中只要有一个为1,该位的结果值为1。3按位异或- ^ 指定位翻转若参加运算的两个二进制位同号,则结果为0(假);异号则为1(真)。4按位取反- ~ 是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变1,将1变0。5左移-用来将一个数的各二进制位全部左移若干位右边只补零。补充①指定位清零②指定位置16右移-无符号数右移补零逻辑右移有符号数右移补1算数右移。

相关新闻

计算机毕业设计之自媒体平台设计与实现

计算机毕业设计之自媒体平台设计与实现

本论文主要论述了如何使用JSP技术开发一个自媒体平台设计与实现,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述自媒体平台设计与实现的当前背景以及系统开发的…

2026/7/22 16:42:55阅读更多 →
嵌入式视频开发实战:VPDMA与HD_VENC_D寄存器配置与调试指南

嵌入式视频开发实战:VPDMA与HD_VENC_D寄存器配置与调试指南

1. 项目概述与核心价值 在嵌入式多媒体开发,尤其是基于德州仪器(TI)DaVinci或类似SoC平台进行高清视频应用开发时,工程师迟早会与两个核心硬件模块正面交锋: 视频处理直接内存访问(VPDMA) 和 …

2026/7/22 16:40:54阅读更多 →
C2000 ERAD模块实战:硬件级系统监控与实时诊断技术解析

C2000 ERAD模块实战:硬件级系统监控与实时诊断技术解析

1. 项目概述:为什么我们需要硬件级的“系统哨兵”?在电机驱动、数字电源或者新能源汽车的电控单元里干活久了,你一定会对“实时性”和“可靠性”这两个词有切肤之痛。我们设计的系统,本质上是一个永不停歇的精密循环:A…

2026/7/22 16:40:54阅读更多 →
EDMA3高级特性:乒乓缓冲与传输链技术详解

EDMA3高级特性:乒乓缓冲与传输链技术详解

1. 项目概述与核心价值 在嵌入式系统开发,尤其是涉及高速数据流处理的领域,比如音频编解码、图像采集或通信协议栈,我们常常面临一个经典难题:如何让数据采集和处理这两个耗时任务并行起来,而不让CPU在等待I/O时“干瞪…

2026/7/22 17:41:08阅读更多 →
Orchis主题技术深度解析:Material Design在Linux桌面环境的5大核心技术实现

Orchis主题技术深度解析:Material Design在Linux桌面环境的5大核心技术实现

Orchis主题技术深度解析:Material Design在Linux桌面环境的5大核心技术实现 【免费下载链接】Orchis-theme Orchis is a [Material Design](https://material.io) theme for GNOME/GTK based desktop environments. 项目地址: https://gitcode.com/gh_mirrors/or/…

2026/7/22 17:41:08阅读更多 →
终极实战指南:用SQLite3++高效封装C++数据库操作

终极实战指南:用SQLite3++高效封装C++数据库操作

终极实战指南:用SQLite3高效封装C数据库操作 【免费下载链接】sqlite3pp SQLite3 - C wrapper of SQLite3 API 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite3pp SQLite3是一款专为C开发者设计的现代化SQLite3封装库,通过面向对象的设计理…

2026/7/22 17:41:08阅读更多 →
CPU 疯狂内卷?深度拆解 Linux 负载机制 + 全维度压力实测

CPU 疯狂内卷?深度拆解 Linux 负载机制 + 全维度压力实测

系统负载监控与压力测试是 Linux 运维、性能调优与服务器稳定性验证的核心能力。精准理解系统负载机制、熟练掌握全维度压测手段,可快速定位 CPU、内存、磁盘 I/O、网络等资源瓶颈,为服务器容量评估、故障排查、业务承压优化提供核心数据支撑。本文深度拆…

2026/7/22 17:41:08阅读更多 →
深入解析EDMA3TC寄存器:从配置到调试的实战指南

深入解析EDMA3TC寄存器:从配置到调试的实战指南

1. 项目概述与核心价值在嵌入式系统,尤其是基于德州仪器(TI)C6000系列DSP或Sitara系列处理器的项目中,EDMA3(Enhanced Direct Memory Access 3)是决定系统数据吞吐能力和CPU效率的基石。它远不止是一个简单…

2026/7/22 17:41:08阅读更多 →
2026年北京宠物寄养新选择:口碑佳店大揭秘

2026年北京宠物寄养新选择:口碑佳店大揭秘

随着现代都市生活的快节奏,越来越多的宠物主人面临着一个共同的问题:外出时无人照看宠物。尤其是在北京这样的大城市,宠物寄养服务的需求日益增长。然而,如何选择一家既能让宠物舒适,又能让自己放心的寄养机构呢&#…

2026/7/22 17:39:06阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/21 22:53:50阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/21 18:53:30阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/21 18:53:30阅读更多 →