C语言第十七集(待修)

11.30的视频

1.结构体可以这样重新赋值

注:字符数组不能用=来赋值

2.匿名结构体重新赋值方法:

注:在创建x时就已经使用过一次匿名结构体了

但是,在使用匿名结构体时,可以一次性创立多个变量

3.结构体内存对齐和对其规则详细搜:

4.总之,我们在创建结构体时,要将占用空间小的成员集中在一起

5.结构体传参的时候最好传地址

6.结构体位段例子搜:

7.位段的出现是为了节省空间

8.位段的具体搜:

(有关于内存分配的,还有关于 : 后边的数字含义的)

9.位段内部没有高地址和低地址之分(但第一个字节肯定小)

10.位段的跨平台问题:搜:

11.位段的应用:搜:

12.位段使用的注意事项:搜

13.我们通常用的结构体还有:联合和枚举

14.联合体的特点是所有成员共用同一块内存空间

15.联合体和结构体大致一样,也是由一个或者多个成员组成,这些成员可以是不同的类型
,但是在联合体中编译器只为最大的成员分配足够的内存空间

16.联合体和结构体的具体区别搜

17.位段不能取地址

但结构体可以

联合体也可以

18.联合体的成员公用一块空间

19.对联合体的一个成员进行更换的时候,其它成员也会跟着更换

所以我在使用一个成员的时候,不会使用另一个成员

20.小端存放的话:低地址放在低位,高地址放在高位

21.联合体的大小至少是最大成员的大小,

但不一定就是最大成员的大小

当最大成员的大小不是最大对齐数的大小的时候,就要对齐到最大对齐数的整数倍

注:VS的默认最大对齐数是8,可以更改

22.如果是数组的话,按照元素来算它的对齐数

例:

char c[5]

中,它的char是1,所以他的对齐数是1

例2:

23.联合体也存在对齐

24.使用联合体可以节省空间

25.有匿名联合体

26.结构体内部成员在创建时,分配到的地址连续

27.结构体的重新赋值方法搜

28.判断当前机器是大端或小端的方法搜

29.枚举是一一列举

关键字是:enum

30.枚举的举例引用搜

31.枚举的优点搜:

32.尽量少用#define 

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

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

相关文章

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面,包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网(LAN)与互联网(Internet)是两个不同的概念,它们分…

Ubuntu 22.04源码安装yasm 1.3.0

sudo lsb_release -r看到操作系统的版本是22.04,sudo uname -r可以看到内核版本是5.15.0-86-generic,sudo gcc --version可以看到版本是11.2.0,sudo make --version可以看到版本是GNU Make 4.3。 下载yasm http://yasm.tortall.net/Downlo…

OpenOffice 4.1.14的安装以及与数据库进行连接

起因:因为MS Office的Access只能和自家的数据库连接,感觉不太舒服,因此尝试使用Openoffice组件中的Base进行替换。这里记录一下从安装到进行数据库连接的过程。 1.下载地址 https://www.openoffice.org/download/index.html 我这里是Debian1…

springboot智慧导诊系统源码:根据患者症状匹配挂号科室

一、系统概述 医院智慧导诊系统是在医疗中使用的引导患者自助就诊挂号,在就诊的过程中有许多患者不知道需要挂什么号,要看什么病,通过智慧导诊系统,可输入自身疾病的症状表现,或选择身体部位,在经由智慧导诊…

Spring Cloud Alibaba简介

1、简介 Spring Cloud阿里(https://sca.aliyun.com/en-us/)为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud开发应用程序。 有了Spring Cloud阿里,你只需要添加一些注释和少量的配置&#…

git操作:使用vscode集成

git操作方式 其实git操作一般有三种方式 分别是终端命令行,开发工具集成,专业的git可视化工具 我前面几章说的都是git的命令行操作,今天这篇文章主要是针对开发工具vscode集成git操作进行演示 说明一下,这里之所以选择vscode,是因为本人用的就是vscode,每个开发工具基本都有…

flutter TextPainter 的用法

本文章基于 Flutter 3.16.2 Dart SDK 3.2.2。 TextPainter 是 Flutter 中用于在 Canvas 上绘制文本的类。它允许您在自定义的 CustomPainter 中使用 drawText 方法来绘制文本,并可以控制文本的位置、颜色、字体等属性。 import package:flutter/material.dart;cla…

管理类联考——数学——真题篇——按题型分类——充分性判断题——秒杀

题型结构 问题求解:通过计算求解,从五个选项中选出一个正确答案。条件充分性判断:问所给的条件(1)(2)能否推出题设的结论,共有五个选项,从中选出正确的一个。&#xff0…

demo(七) zuul请求过滤

在之前的基础上,实现请求过滤功能: 一、介绍: 1、背景:为实现对用户请求的安全校验和权限控制,用于对签名验证、权限校验的过滤器或拦截器。 2、实现方法:实现请求过滤只需继承ZuulFilter并重写方法&…

功能点估算常见问题,AI时代下成本估算探索

CoCode学院:功能点估算常见问题 AI时代下成本估算探索 功能点估算常见问题,AI时代下成本估算探索 功能点估算常见问题 资深软件造价评估专家李培圣 直播内容 1、功能点估算概述 2、功能点估算的常见问题 3、现场答疑 直播时间 12月13日 (周三) 20&a…

什么是自动化测试?什么情况下使用?

什么是自动化测试? 自动化测试是指把以人为驱动的测试行为转化为机器执行的过程。实际上自动化测试往往通过一些测试工具或框架,编写自动化测试脚本,来模拟手工测试过程。比如说,在项目迭代过程中,持续的回归测试是一项非常枯燥…

HarmonyOS创建JavaScript(类 Web开发模式)项目

上文 HarmonyOS带大家创建自己的第一个Page页面并实现路由跳转(ArkTS)带大家创建了我们项目中第一个自己创建的page 并完成了一个跳转逻辑的编写 上文的开发模式是 ArkTS 的 也被称为 声明式开发范式 还有一种 javaScript的 类Web开发模式 这种方式就类似于我们传统的前端开发模…