学习过程中发现自己好些需要用到的C语言语法、特征都不太熟练了,特意记录一下,免得忘记了,以后遇到了新的也会继续更新······
目录
[1 全局变量](#1 全局变量)
[2 结构体](#2 结构体)
[3 静态变量](#3 静态变量)
[4 memset()函数](#4 memset()函数)
[5 使用8位的存储器存16位的数](#5 使用8位的存储器存16位的数)
1 全局变量
这里指的全局变量,即可在另一.c文件中使用的变量,例如在某BSPxx.c中定义了全局变量flag,但在main.c中也需要用到这个变量,这时就需要将变量声明为外部变量了。
做法:在BSPxx.h中声明该变量为extern变量,如:
cpp
extern uint_8t flag;
2 结构体
定义一个结构体时,最好给他一个初始化的值{0},否则其结构体变量可能会出现随机的数。
3 静态变量
静态变量的定义在程序中只会被执行一次,哪怕程序多次调用其定义语句(例如其定义语句处于函数中时)。可用于实现一些状态变量的记忆。如下图为按键标志的记忆。
4 memset()函数
用于初始化变量,万能。所有变量都适用,直接对内存进行操作,因此更加快速。
-
使用方式:
cppvoid *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位的数据类型存储,否则移位将丢失数据。 - 示例