当前位置: 首页 > news >正文

嵌入式——C语言:内存管理、位运算符、构造数据类型(共用体、枚举)

一、共用体

1.共用体也称联合体,多用于函数传参使用

2.数据类型定义:

union      共用体{

        数据类型1 成员变量1;

        数据类型2 成员变量2;

        数据类型3 成员变量3;...

};

3.共用体和结构体区别

        3.1共用体每个成员变量的空间共享的

        3.2结构体每个成员变量的空间是独立的

4.使用共用体判断内存大小端

        4.1内存小端:低地址存低数据位

        4.2内存大端:低地址存高数据位

二、枚举

1.枚举定义一些枚举常量

2.定义形式:

enum 枚举类型{

        常量1,

        常量2,

        常量3,...

};

3.特性

        3.1枚举常量均为int类型,且第一个枚举常量的默认值为0,后一个枚举常量为前一个值+1

        3.2枚举常量定义时可直接赋值

三、位运算符

1.

运算符
&按位与,与0得0
||按位或,或1得1
^按位异或,相同为0,相异为1。交换两个数
~按位取反
<<左移,数据变大相当于*2的n次方
>>右移,让数据缩小等价于/2的n次方

2.优先级

        移位运算符高于其余运算符:x = y >> n | m;

3.使用

        3.1将一个数据第n位置1:num |= (1 << n) ;

        3.2将一个数据某位置0:    num &= ~(1<<n);

四、内存管理

1.堆区空间操作

        1.1malloc函数:申请堆区空间,若申请成功返回申请堆区空间首地址,失败返回NULL

        1.2free函数:释放申请的堆区空间

2.内存泄漏:只申请空间,使用完毕后,不释放空间,导致可用空间越来越少。

http://www.dtcms.com/a/305900.html

相关文章:

  • NVIDIA Isaac平台推动医疗AI机器人发展研究
  • 【LeetCode 热题 100】33. 搜索旋转排序数组——(解法二)一次二分
  • ragflow 报错ERROR: [Errno 111] Connection refused
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(三级)
  • LeetCode 面试经典 150_数组/字符串_轮转数组(6_189_C++_中等)(额外数组;转置)
  • 磁盘io查看命令iostat与网络连接查看命令netstat
  • Apache HTTP Server 2.4.50 路径穿越漏洞(CVE-2021-42013)
  • 矩阵指数函数 e^A
  • AR技术赋能航空维修:精度与效率的飞跃
  • 基于Catboost的铁路交通数据分析及列车延误预测系统的设计与实现【全国城市可选、欠采样技术】
  • Three.js 与 WebXR:初识 VR/AR 开发
  • nest generate从入门到实战
  • 6.Origin2021如何绘制Y轴截断图?
  • Java 笔记 封装(Encapsulation)
  • 常见存储卡类型及对比
  • Elasticsearch 索引管理 API 实战:涵盖创建、查看、修改、删除及别名
  • 10 分钟上手 Elasticsearch 语义搜索(Serverless Cloud 本地双版本教程)
  • 在 Kubernetes 上部署 Label Studio
  • 汽车免拆诊断案例 | 免拆诊断发动机起动困难故障2例
  • Visual Studio Code 使用指南 (2025年版)
  • lesson28:Python单例模式全解析:从基础实现到企业级最佳实践
  • 【网络工程师软考版】路由协议 + ACL
  • 网络资源模板--基于Android Studio 实现的图书商城App
  • 如何不让android studio自动换行
  • UDP通讯和TCP通讯的区别-UDP(用户数据报协议)和 TCP(传输控制协议)
  • 第十七章 追新词
  • Python 闭包(Closure) 特性剖析
  • Linux ps -ef 命令解析
  • 三十二、【Linux网站服务器】搭建httpd服务器演示虚拟主机配置、网页重定向功能
  • STM32学习记录--Day3