嵌入式学习记录15

结构体 struct

描述一些 基本数据类型不好描述的 ;复杂的数据类型

就是要描述一类事物,需要从他的方方面面入手,而这些方面的数据类型又各不相同,这时需要整合在一起;就是结构体;而这个结构体相当于一个模具,可以批量得到这一类的各项数据;

如:

struct 学生

{

        char name[20] ;     //   姓名       切记char类型后变量名后要加所需要的多少个字符空间大小;

        int classNO;           //     班级

        int age ;                  //       年龄

        int score ;                //         成绩

        ...

}结尾切记要加   ' ; ' (分号)

总结:

struct 结构体类型名;

{

        数据成员列表;

};

定义完结构体后,在一般主函数调用;

调用时:

struct  结构体类型名  s = {  数据成员列表一 一 输入;}中间用逗号隔开,类型要与上述定义类型一致;定义几个输入几个;

1.   .  (点)

结构体变量名  .  成员变量名 

如:s . name;  变量s 中指向那个name的刚刚输入的量;

2. -> 

结构体变量地址  ->  成员变量名 

用地址 直接访问到 成员变量;刚刚输入的那个量;

3.struct  ... *

struct  结构体类型名  *s = {  数据成员列表一 一 输入;}

定义一个指针类型的变量s 这个指针指向结构体的存储地址

4.struct ... 数组;

struct student a[3]={{数据成员列表1},{数据成员列表2},{数据成员列表3}}

一次定义三个数据结构体,拿出这类的三个不同个体进行比较;

此处 a <=>数组首元素地址;

因此可直接用   ->    进行循环(a+i)->  成员变量名;直接用地址得到 数据

5,结构体对齐规则

判断结构体大小

1.32位平台上默认四字节对其; //因为宽度为4,一次传4个字节;因此,在存放时一般放在4的倍数上的地址;

2.对于成员变量:各自在各自的边界上对其;

3.成员变量中有比四字节大的:按照四字节对齐;

4.成员变量中没有比四字节大的:按照最大的那个成员对齐;

1.64位平台上默认8字节对其;//8,一次传8个字节;因此,在存放时一般放在8的倍数上的地址;

2.成员变量中没有比四字节大的:按照最大的那个成员对齐

3.成员变量中有比四字节大的:8字节必须放在地址是8的倍数的位置,因此按8字节算;

4.一些小于或等于四字节的在一起但有大于四字节的在后面,那一堆小字节的的按4字节对齐;临近8字节看第三点;

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

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

相关文章

NoSQL数据库简介

NoSQL数据库简介 Brief Introduction to NoSQL Databases By JacksonML 1. 什么是SQL&#xff1f; 在了解NoSQL之前&#xff0c;先简要介绍一下SQL。 SQL是 Structured Query Language&#xff08;结构化查询语言&#xff09;的缩写。 SQL在关系型数据中广泛使用&#xf…

字符串函数(2)

目录 字符串替换 将所有员工姓名中的字母“A”替换为“_” 消除空格数据 字符串截取 字符串截取操作 从指定位置截取到结尾 截取部分内容 截取每一位员工姓名的前三位字符 面试题&#xff1a;请问利用 Oracle 中的 substr() 函数进行截取时&#xff0c;字符串的索引是从…

从淘宝商品详情API看电商行业的数据价值

在电商行业&#xff0c;数据已经成为驱动业务增长的关键因素。淘宝作为中国电商市场的主要参与者&#xff0c;其商品详情原数据的API在电商行业中具有显著的重要性。本文将深入探讨这个话题&#xff0c;并阐述如何实现实时数据获取。 一、淘宝商品详情原数据API的重要性 提供…

大数据学习之Redis,十大数据类型的具体应用(三)

目录 3.7 Redis位图&#xff08;bitmap&#xff09; 概念 需求 是什么 说明 能干嘛? 基本命令 3.7 Redis位图&#xff08;bitmap&#xff09; 概念 由0和1状态表现的二进制位的bit数组 需求 用户是否登陆过&#xff1f;Y / N 广告是否被点击过&#xff1f; 钉钉打…

深入理解G0和G1指令:C++中的实现与激光雕刻应用

系列文章 ⭐深入理解G0和G1指令&#xff1a;C中的实现与激光雕刻应用⭐基于二值化图像转GCode的单向扫描实现⭐基于二值化图像转GCode的双向扫描实现⭐基于二值化图像转GCode的斜向扫描实现基于二值化图像转GCode的螺旋扫描实现基于OpenCV灰度图像转GCode的单向扫描实现基于Op…

RK3568平台 热插拔机制

一.热插拔的基本概念 热插拔是指在设备运行的情况下&#xff0c;能够安全地插入或拔出硬件设备&#xff0c;而无需关闭或重启系统。这意味着你可以在计算机或其他电子设备上插入或拔出硬件组件&#xff08;比如USB设备&#xff0c;扩展卡&#xff0c;硬件驱动器等&#xff09;…

计算机网络-调度算法-2(时间片轮转 优先级调度算法 多级反馈队列调度算法 多级队列调度算法)

文章目录 总览时间片轮转时间片大小为2时间片大小为5若按照先来先服务算法 优先级调度算法例题&#xff08; 非抢占式优先级调度算法&#xff09;例题&#xff08; 抢占式优先级调度算法&#xff09;补充 思考多级反馈队列调度算法例题 小结多级队列调度算法 总览 时间片轮转 …

设计模式学习笔记02(小滴课堂)

江湖传言里的设计模式-单例设计模式 单例设计模式中的懒汉方式实战 这种方式是线程不安全的&#xff0c;多个线程同时调用会创建多个对象。 所以我们就要给它加锁: 我们去测试一下&#xff1a; 因为构造函数已经私有化&#xff0c;所以不能直接用new的方式去创建对象。 现在我…

springboot本地测试

文章目录 本地测试引入依赖进入StudentMapper右键点击生成 项目结构 本地测试 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </d…

笔记本从零安装ubuntu系统+多种方式远程控制

文章目录 前言ubuntu启动盘Windows远程Ubuntu安装XrdpXrdp卡顿问题解决Xrdp 二次登录会死机的问题Xrdp 卡顿问题 MobaXtermRustDesk 外网远程VNC 远程SSH远程其它设置 总结 前言 我有台老笔记本&#xff0c;上大学第一年的时候买的&#xff0c;现在已经不怎么好用了。打算刷个…

基于Qt 音乐播放器mp3(进阶)

​## 项目工具 工具名QtQt 5.14.2图标设计Adobe Ai音频素材剪映平台windowsgif录制ScreenGif录屏Win10 自带录屏 Win + G## 项目演示 先点击构建项目,项目构建完成后,再将本例的 myMusic 歌曲文件夹拷贝到可执行程序

初谈C++:引用

文章目录 前言概述引用特性应用场景做参数做返回值 传值、传引用效率比较引用和指针的区别 前言 在学习C语言的时候会遇到指针&#xff0c;会有一级指针、二级指针…很容易让人头昏脑胀。在C里面&#xff0c;引入了引用的概念&#xff0c;会减少对指针的使用。引用相当于给一个…

日历功能——C语言

实现日历功能&#xff0c;输入年份月份&#xff0c;输出日历 #include<stdio.h>int leap_year(int year) {if(year % 4 0 && year % 100 ! 0 || year % 400 0){return 1;}else{return 0;} }int determine_year_month_day(int *day,int month,int year) {if(mo…

ECharts 图表嵌入表格样式的demo

心累。。。 如果条件允许&#xff0c;还是强烈建议 用 Echartshtml 来实现&#xff08;表格部分由 html 来弄&#xff09;。 这里是调研阶段&#xff0c;想看看 ECharts 原生能做到什么程度。 先贴上样图&#xff1a; 贴上完整代码&#xff1a; <!DOCTYPE html> <…

docker概念和常见命令

1.docker基础知识 概念 docker镜像&#xff08;docker images&#xff09;&#xff1a;容器运行的只读模板&#xff0c;操作系统软件运行环境用户程序 docker容器&#xff08;docker containers&#xff09;&#xff1a;容器包含了某个应用运行所需要的全部环境 docker仓库&a…

SQL注入攻击 - 基于布尔的盲注

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 查看靶场详情:SQL Injections 一、判定是否有注入点 以下是一个常见的步骤: 在URL中尝试输入特殊字符,如: " \ -- 等,并观察页面返回的内容。在URL中尝试输入错误的…

MySQL:MVCC原理详解

MySQL是允许多用户同时操作数据库的&#xff0c;那么就会出现多个事务的并发场景。那么再并发场景会出现很多问题&#xff1a;脏读、不可重复读、幻读的问题。 而解决这些问题所用到的方法就是&#xff1a;MVCC 多版本并发控制。而这个MVCC的实现是基于read_view、undoLog 如…

【Linux驱动】块设备驱动(一)—— 注册块设备

针对块设备驱动将分为两部分介绍&#xff0c;第一部分是注册块设备&#xff0c;即将块设备成功添加到内核&#xff1b;第二部分是介绍如何读写块设备&#xff0c;因为没有实际块设备&#xff0c;这里选择使用内存来模拟块设备。 一、认识块设备 1、什么是块设备 块设备针对的…

浏览器内存泄漏排查指南

1、setTimeout执行原理 使用setInterval/setTimeOut遇到的坑 - 掘金 2、Chrome自带的Performance工具 当我们怀疑页面发生了内存泄漏的时候&#xff0c;可以先用Performance录制一段时间内页面的内存变化。 点击开始录制执行可能引起内存泄漏的操作点击停止录制 如果录制结束…

【Java基础】之进程与线程

进程与线程 1. 线程与进程1.1 概念1.2 区别与联系 2. 线程的5种状态和切换2.1 简单介绍2.2 状态切换2.2.1 重点情况 3. 线程中常见的方法4. 线程池 1. 线程与进程 1.1 概念 进程&#xff1a;资源分配的基本单元&#xff0c;如QQ音乐 线程&#xff1a;资源调度的基本单元&…