【STM32】C语言基础补充

devtools/2024/9/25 23:19:32/

学习过程中发现自己好些需要用到的C语言语法、特征都不太熟练了,特意记录一下,免得忘记了,以后遇到了新的也会继续更新······

目录

1    全局变量

2    结构体

3    静态变量

4    memset()函数

5    使用8位的存储器存16位的数


1    全局变量

这里指的全局变量,即可在另一.c文件中使用的变量,例如在某BSPxx.c中定义了全局变量flag,但在main.c中也需要用到这个变量,这时就需要将变量声明为外部变量了。
做法:在BSPxx.h中声明该变量为extern变量,如:

extern uint_8t flag;

2    结构体

定义一个结构体时,最好给他一个初始化的值{0},否则其结构体变量可能会出现随机的数。

3    静态变量

静态变量的定义在程序中只会被执行一次,哪怕程序多次调用其定义语句(例如其定义语句处于函数中时)。可用于实现一些状态变量的记忆。如下图为按键标志的记忆。

4    memset()函数

用于初始化变量,万能。所有变量都适用,直接对内存进行操作,因此更加快速。

  • 使用方式:
    void *memset(void *s, int c, unsigned long n);
  • 功能:
    将指针变量s所指向的前n字节的内存单元用一个“整数”c替换,注意c是int型。s是void*型的指针变量,所以它可以为任何类型的数据进行初始化。
  • 需要
    导入string头文件# include <string.h>。

5    使用8位的存储器存16位的数

  • 思路:
    将16位的高8位和低8位分别存在两个数中,在支持16位的程序中对高8位的数据进行左移8位,并将其与低8位的数据进行或操作。
  • 注意!
    8位的数据读到支持16位的程序中时需使用16位的数据类型存储,否则移位将丢失数据。
  • 示例


http://www.ppmy.cn/devtools/98649.html

相关文章

IDEA:Terminal找不到npm

Terminal的命令失效通过修改cmd.exe的方式还是不生效的话&#xff0c;考虑是windwos11 默认idea不是通过管理员启动的&#xff0c;如下图修改就可以了。

k8s学习笔记-HPA练习

0x01 水平自动扩缩HPA 指statefulset和deployment这些负载&#xff0c;可以根据系统的负载压力&#xff0c;自动扩容应对业务高峰&#xff0c;并在低峰时自动缩容&#xff0c;降低资源消耗。 0x02 准备 要求已经有一个1.23以上的k8s集群&#xff0c;在其中部署metrics-serve…

计算机四个方面:计算、存储、通信与程序;操作系统

一、计算、存储、通信与程序 计算机系统的四个基本方面是计算、存储、通信与程序。下面我将详细介绍这四个方面的特点、区别&#xff0c;以及在Linux系统中与之对应的自带命令。 1. 计算 特点&#xff1a; 计算是计算机最基本的功能&#xff0c;涉及数据的处理、运算和逻辑…

mac安装ipa包【金铲铲为例】

mac安装ipa包 安装PlayCover 链接&#xff1a;https://github.com/PlayCover/PlayCover 1、点最新Releases 2、cmd ↓&#xff0c;拉到最下面下载dmg 3、安装 图标拖拽到Applications里 IPA下载 以金铲铲为例&#xff0c;良心砸壳包站点&#xff0c;有能力可以支持一下…

如何用Python Django构建二手房房价预测与知识图谱系统?

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

【极限性能,尽在掌控】ROG NUC:游戏与创作的微型巨擘

初见ROG NUC&#xff0c;你或许会为它的小巧体型惊讶。然而&#xff0c;这看似不起眼的机身内&#xff0c;蕴藏着游戏、创意的强大能量。 掌中风暴&#xff0c;性能无界 ROG NUC搭载英特尔高性能处理器&#xff0c;配合高速NVMe SSD固态硬盘以及可选的高端独立显卡&#xff08…

基于Python的mediapipe和opencv的人体骨骼、人体姿态关键点的实时跟踪项目

随着计算机视觉技术的发展&#xff0c;人体姿态估计在虚拟现实、运动分析、人机交互等领域得到了广泛应用。传统的姿态估计方法通常依赖于深度学习模型&#xff0c;需要大量的计算资源。而 Google 开发的 MediaPipe 框架则提供了高效且易于使用的解决方案&#xff0c;它可以在各…

C++系列-继承方式

继承方式 继承的语法继承方式&#xff1a;继承方式的特点继承方式的举例 继承可以减少重复的代码。继承允许我们依据另一个类来定义一个类&#xff0c;这使得创建和维护一个应用程序变得更容易。基类父类&#xff0c;派生类子类&#xff0c;派生类是在继承了基类的部分成员基础…