从零学编程-C语言-第17天

embedded/2024/12/23 1:26:57/

今天是学习C语言的第17天

时间:2024/10/6 21:16分

使用编译器:vs2019

此贴记录自己的成长

今天学习内容如下

1.自定义类型-结构体

结构体 枚举  联合
//结构体
struct stu
{char name[20];
}s1, s2; 这里是全局变量
int main()
{struct stu s1,s2 这里是局部变量
}
//特殊声明 匿名结构体类型 结构体类型只是struct 没有后面的东西
struct
{char name[20];
}s1; 只能在这里声明变量一次,因为没有类型数据结构
数据在内存的存储结构
线形
--
顺序表 
链表   每个元素都有关系 1找到2 2找到3 3找到4 
1里包含2 2包含3 3包含4 就可以找到
结构体的自引用
struct Node 这是一个节点 如果一直包含下去,节点内存会过大 sizeof(struct Node) 所以这种写法失败
{int data;struct Node next;
};
struct Node 存放地址,而不直接存放下一个节点的内容,这样内存就小了
{int data;struct Node* next;        |||数据域|||指针域|||
};树形
--
二叉树结构体内存对齐

2.结构体内存对齐,内存占用大小

两次访问指的是32位机子上,一次4个字节  8086 8088 类似

 gcc编译器里没有对齐数,对齐数就是他本身字节数

3.修改对齐数

 4.后面讲这个

5.结构体传参优选传地址过去

6.位段

 位段作用是修改占的比特位数量

 

位段一般用来网络里面,有固定的位,不像跨平台类似的 

7.枚举

只有创建变量才有空间,只是个图纸跟结构体一样

 define 也可以,但是枚举可以自动给后面值+1赋值

枚举不是替换

8.联合(共用体)

C语言学习日志

时间:2024/10/6 21:16分

目标:一个月学完c语言

倒计时:13天


http://www.ppmy.cn/embedded/126033.html

相关文章

简单理解Python代码的重构

版本一: 实现存储用户的名字: remember_me.py #易择365 from pathlib import Path import json username input("请输入你的名字:") path Path(username.json) contents json.dumps(username) path.write_text(contents) print(…

【PostgreSQL】运维篇——定期备份与恢复策略

在数据库管理中,定期备份是确保数据安全性和可恢复性的关键措施。制定一个有效的备份计划可以帮助您在发生数据丢失、损坏或其他灾难性事件时快速恢复数据。 以下是制定定期备份计划的步骤,以及使用pg_dump和其他工具进行数据备份和恢复的详细介绍。 1…

HUAWEI_HCIA_实验指南_Lib1.4_配置通过Telnet登录系统

一、原理概述 Telnet(Telecommunication Network Protocol)起源于ARPANET,是最早的Internet应用之一。 Telnet 通常用在远程登录应用中,以便对本地或远端运行的网络设备进行配置、监控和维护。如网络中有多台设备需要配置和管理,用户无需为每一台设备…

国外电商系统开发-运维系统操作脚本

查看脚本内容,只需要点击即可: 执行脚本,请点击 点击了下一步后,可以输出脚本参数,当然你可以可以不输入,直接下一步就行: 现在,点击【下一步】执行开始出初始化脚本: …

Java每日面试题(java基础)(day17)

目录 JDK/JRE/JVM三者的关系JDK常用的包 和 equals 的区别是什么?Java 中的几种基本数据类型了解么?什么是自动拆装箱?final 关键字中有什么作用?接口和抽象类有什么区别?String, StringBuffer 和 StringBuilder区别St…

MATLAB工具库:数据统计分析工具MvCAT、MhAST等

MATLAB工具库:数据统计分析工具MvCAT、MhAST等 工具1:Multivariate Copula Analysis Toolbox (MvCAT)MATLAB中运行 工具2:Multi-hazard Scenario Analysis Toolbox (MhAST) 参考 The University of California-软件库-Software 工具1&#xf…

RK3568笔记六十四:SG90驱动测试

若该文为原创文章,转载请注明原文出处。 前面有测试过PWM驱动,现在使用两种方式来产生PWM驱动SG90,实现舵机旋转任意角度 方法一:使用硬件PWM 方法二:使用高精度定时器,GPIO模拟PWM. 一、PWM子系统框架 二、SG90控制方法 舵机的控制需要MCU产生一个周期为20ms的脉冲信号…

JavaScript的生成器与组合学习

基本介绍 生成器是 JavaScript 中的一种特殊函数,能够在执行过程中暂停,并且在需要的时候恢复执行。这与普通函数的执行方式不同,普通函数一旦开始执行,必须执行完所有语句后才会返回,而生成器可以在执行过程中多次暂…