嵌入式day16

news2025/1/12 1:48:22

结构体与共用体

概述

通常结构体名第一个字符大写

} ; 分号不能省略

类型名与变量名的关系 :抽象与具体的关系

. :结构体成员运算符

先有类型,再有定义

Student 可省略

使用者只能用全局变量s1,s2

全部初始化:

顺序与声明的类型有关

部分初始化:

中间用 “,” 隔开,其余部分补0

结构体对齐:

浪费字节对齐,提高程序(cpu)执行效率(空间换时间)

规则:

1、结构体按照其最长成员大小对齐,意味着最终的大小必须是最长成员大小的整数倍;

2、结构体成员按照结构体成员声明先后次序依次存放,并且每个成员的首字节放置的位置必须能够整除成员的字节数;

3、如果结构体某个成员的字节数大于CPU的字节数,则最长按照CPU的字节数对齐;

4、用预处理命令#pragma pack(n) 可以强制编译器按照指定的n来对齐,合法的n的数值分别是1、2、4、8、16。

数组按数组装的元素来对齐,并非数组个数

结构体作为函数参数传递使,通常用指针传参

->:指向结构体成员运算符

左边为指针 用指向,为变量,用 .

结构体变量允许整体赋值

结构体不能整体比较,但是成员间可以进行比较

尽量不在头文件里包头文件,降低编译效率

程序 = 数据结构 + 算法

用指针处理链表

链表概述

pHead 头指针保存第一个节点的地址

插入,删除的算法复杂度为1,效率高于数组

节点都是从堆上来的(malloc)

空链表 : 头指针指向NULL

链表节点地址不连续,不能加i访问第i个元素的地址

有头链表和无头链表:

有头链表

首节点从栈区来

头插:

遍历:

---------------------------

嵌入式学习第十六天,今天学习了c语言的最后一章内容,c语言马上就要结束了,后面继续加油

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis缓存常见问题

Redis 缓存的穿透、雪崩、击穿是三种常见的问题,它们各自的表现和应对策略有所不同。以下是这三者的区别: 1. 缓存穿透(Cache Penetration) 现象: 缓存穿透是指客户端请求的数据在缓存中不存在,同时在数据库中也不存…

【avue+vue2+elementui】删除、rules、页面跳转和其他问题

一、删除 API/*** 删除.* @param {*} data * @returns 返参*/ export const deleteOrder = (data) => {return request({url: /api/Order/deleteOrder,method: post,data}) }HTML左菜单<template slot="menuLeft"><el-button size="small" typ…

余弦函数的希尔伯特变换过程推导

做例2.11.1的第一个公式&#xff0c;我懒得手写了&#xff0c;直接画图了。 我曾经百度了coswt的傅里叶变换的公式&#xff0c;发现百度的公式和我换元的不一样&#xff0c;我还以为我错了&#xff0c;大致考虑了傅里叶变换的过程之后&#xff0c;我确定&#xff0c;百度的余弦…

搭建日志系统ELK(二)

搭建日志系统ELK(二) 架构设计 在搭建以ELK为核心的日志系统时&#xff0c;Logstash作为日志采集的核心组件&#xff0c;负责将各个服务的日志数据采集、清洗、过滤。然而缺点也很明显&#xff1a; 占用较多的服务器资源。配置复杂&#xff0c;学习曲线陡峭。处理大数据量时…

通过阿里云OOS“快速设置”快速配置多地域运维任务

1. 介绍 什么是系统运维管理OOS? 系统运维管理OOS&#xff08;CloudOps Orchestration Service&#xff09;是阿里云提供的一项云上自动化运维服务&#xff0c;旨在帮助用户实现运维任务的自动化管理和执行。通过OOS&#xff0c;用户可以设计模板来详细定义执行任务的内容、…

软件开发人员如何有效提问

引子&#xff1a;小张的困惑 小张是一名刚入职的大数据开发工程师&#xff0c;满怀热情地加入了一个处理城市交通数据的项目。然而&#xff0c;面对复杂的数据流和繁琐的ETL过程&#xff0c;他很快就遇到了瓶颈。每次在团队会议上&#xff0c;他都不知道该如何准确地表达自己的…

通过Java实现插入排序(直接插入,希尔)与选择排序(直接选择,堆排)

目录 &#xff08;一&#xff09;插入排序 1.直接插入排序 &#xff08;1&#xff09;核心思想&#xff1a; &#xff08;2&#xff09;代码实现&#xff08;以从小到大排序为例&#xff09;&#xff1a; &#xff08;3&#xff09;代码分析&#xff1a; 2.希尔排序&#xff08…

C# 串口控制 校验

1. 串口控制 using System; using System.IO.Ports; using System.Windows.Forms;namespace 串口控制 {public partial class Form1 : Form{//device1const byte DeviceOpen1 0x01;const byte DeviceClose1 0x81;//device2const byte DeviceOpen2 0x02;const byte DeviceCl…

【Canvas与艺术】六角大楼

【成图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>六角大楼</title><style type"text/css">.cen…

【WOA】鲸鱼优化算法详细解读

鲸鱼优化算法的详细解读 目录 一、引言 二、鲸鱼优化算法的原理 三、鲸鱼优化算法的主要步骤 四、鲸鱼优化算法的特点 五、Python代码实现 一、引言 在当今的优化问题中&#xff0c;随着问题复杂性的增加&#xff0c;传统的优化方法往往难以找到全局最优解。近年来&#…

【计算机毕业设计】​720图书馆智能选座系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

仓库物品与装备物品替换

思路 1、创建UI面板以承载仓库中的物品和已装备的物品&#xff0c;以及物品名称和物品描述&#xff1b; 2、创建ItemData.cs装载物品的缩略图、描述并创建ItemData对象 3、创建一个脚本&#xff0c;声明并定义承载ItemData对象的数组、承载缩略图的数组。 4、显示缩略图、文…

6.key的层级结构

redis的key允许多个单词形成层级结构&#xff0c;多个单词之间用:隔开&#xff0c;格式如下&#xff1a; 项目名:业务名:类型:id 这个格式并非固定的&#xff0c;可以根据自己的需求来删除或添加词条。 例如&#xff1a; taobao:user:1 taobao:product:1 如果value是一个java对…

【Golang 面试 - 进阶题】每日 3 题(十一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…

提升SEO排名的谷歌外链策略

​要提升SEO排名&#xff0c;谷歌外链策略必须聚焦于外链数量和质量的合理搭配。市场上那些SEO表现优秀的网站&#xff0c;无一例外地拥有数万甚至数十万的外链&#xff0c;而且这些外链在结构上表现出复杂和多样化。这不仅仅是因为数量众多&#xff0c;还因为这些外链质量的高…

酷家乐--应用频繁报出cause java.net.SocketTimeoutException: Read timed out怎么办

涉及到网络层面的问题一般都比较复杂&#xff0c;场景多&#xff0c;定位难&#xff0c;成为了大多数开发的噩梦&#xff0c;应该是最复杂的了。下面通过一个实际的例子来阐述遇到了要怎么办。 现象 部署在矩阵机房的较多应用频繁报出toad异常&#xff0c;Encounter unknown …

嵌入式学习第13天——C语言循环结构break和continue

break和continue break 功能&#xff1a; 1.用在switch中&#xff0c;用来跳出switch的case语句;如果case没有break&#xff0c;可能会产生case穿透。 2.用在循环中(while、do..while、for..)&#xff0c;提前结束循环&#xff0c;也就是跳出整个循环。 说明&#xff1a; …

spring的三级缓存与源码分析--解决循环依赖

三级缓存介绍 Spring 通过三层缓存来处理循环依赖&#xff0c;这些缓存分别是&#xff1a; 一级缓存&#xff08;内存中的 singletonObjects&#xff09; 二级缓存&#xff08;earlySingletonObjects&#xff09; 三级缓存&#xff08;singletonFactories&#xff09; 1. 一…

深入理解C语言结构体

目录 引言 一. 结构体的基本概念 1.结构体的声明 2. 结构体变量的创建和初始化 3. 结构体成员访问操作符 4.结构体的特殊声明 1. 匿名结构体 2. 嵌套结构体 3.结构体自引用 4. typedef 声明 二、结构体内存对⻬ 1.对⻬规则 2.为什么存在内存对⻬? 3.修改默认对齐…

ffmpeg命令-Windows下常用最全

查询命令 参数 说明 -version 显示版本。 -formats 显示可用的格式&#xff08;包括设备&#xff09;。 -demuxers 显示可用的demuxers。 -muxers 显示可用的muxers。 -devices 显示可用的设备。 -codecs 显示libavcodec已知的所有编解码器。 -decoders 显示可用…