STM32的C语言重点知识(1.C语言数据类型+2.C语言宏定义+3.C语言typedef+4.C语言结构体+5.C语言枚举)

简介: STM32的C语言重点知识(1.C语言数据类型+2.C语言宏定义+3.C语言typedef+4.C语言结构体+5.C语言枚举)

1.C语言数据类型:


347fb4382fab4662b605b7afd77e4188.png


注:目的是看到stdint,如看到int8_t;uint16_t能够瞬间知道表示的是char,8字节;unsigned short,16字节。


ST关键字意思是在老版本的引脚说明中被使用。


2.C语言宏定义:


d5f1de6af5cc4b4d829d7f7ea4e0b64a.png


如用1代表上拉输入,2代表下拉输入,3代表浮空输入。直接写1,2,3很难理解.


167e50f3357d4875a86ab3ddbf9351bb.png


将0x1000转换成容易理解的GPIO_Pin_12;写为#define GPIO_Pin_12 0x10000


3.C语言typedef


c56519d3b3a74c90ab46d6b9090cf262.png


区别:宏定义的新名字在左边,typedef的新名字在右边


宏定义不需要分号,typedef需要加分号.


宏定义可以换任何名字,typedef只能给变量类型换名字。


宏定义用途更宽,但是typedef用错会报错,更安全。


4.C语言结构体:


6d72378854574e84845a5271c9862a3b.png


int char 都需要数据类型。 char a[10]是数组,是char型数据集合,只能组合相同类型的数据。


组合不同数据时,需要用结构体。


作用:定义数据,引用数据。


定义部分:


c4bc09f33ad24635a8aee6876f7bbad0.png


此处struct为结构体固定格式.。定义一个结构体变量,名字为c,包含char型x,int型y,float型z


引用部分:


ca593f2a16a540a982e217251d1db960.png


c.x='A'; 可以改写为 c->x='A';


注:下面这种定义结构体较为麻烦


e18136dd09fa44599365414b5c15081f.png


使用typedef可改写为:


5b71c9cd8d6a41f98e9e5e87ff064a54.png

5.C语言枚举:


fe3aa698942f4c0083c88876a73ec5e6.png


例子如下:


26c63a1aa4fe45c1936d35fd07085451.png



相关文章
|
16天前
|
程序员 C语言
【C语言】初步认识结构体
【C语言】初步认识结构体
15 0
|
20小时前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
20小时前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
2天前
|
存储 编译器 程序员
C语言:自定义类型 - 结构体 & 联合体 & 枚举
C语言:自定义类型 - 结构体 & 联合体 & 枚举
10 2
|
6天前
|
存储 编译器 C语言
[C语言]自定义类型(结构体~枚举~联合体)
[C语言]自定义类型(结构体~枚举~联合体)
|
11天前
|
存储 C语言
【C 言专栏】C 语言中的数据类型详解
【4月更文挑战第30天】本文介绍了C语言中的核心数据类型,包括整型(short, int, long, long long)、浮点型(float, double)、字符型(char)、指针、数组、结构体、共用体和枚举。理解这些类型的特点和适用场景对于编写高效准确的C语言代码至关重要。选择合适的数据类型并注意转换和运算规则,能避免错误,为编程打下坚实基础。
|
11天前
|
存储 算法 程序员
【C言专栏】C 语言结构体的应用与实践
【4月更文挑战第30天】C语言中的结构体是自定义数据类型的关键,它组合不同类型的數據以创建新类型,尤其适合处理复杂对象如学生信息。通过定义结构体如`struct Student`,包含名字、学号和成绩,可以方便地实例化和访问成员。结构体在链表实现、函数参数传递和数组中都有广泛应用,如表示链表节点和处理批量数据。理解并熟练运用结构体对于C语言编程至关重要,能提升代码效率和可读性。
|
17天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)