STM32编程中C语言学习
项目需要学习STM32中的一些函数的使用,但其中涉及到许多指针、结构、变量等等,虽然在学校的C语言基础课程中已经学习了一部分,但这一部分过于基础,所以针对性的又学习了算是进阶的知识点,这里主要参考这篇文章,以及学长发的文件中的学习笔记进行针对性的学习
https://www.cnblogs.com/lnleelove/p/9751804.html
逻辑运算以及位运算
与、或、非运算
- “|”: 或的符号,1|1=1、1|0=1、0|0=0,只要有1则为1;
- “&”: 与的符号,1|1=1、1|0=0、0|0=0,只要有0则为0;
- “~”: 非的符号, ~1=0、 ~0=1,等于取反;
- “^”: 异或的符号,两个位相同为0,相异为1;
** 位运算** - “>>” 位左移,各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移);
- “<<” 位右移,各二进位全部左移若干位,高位丢弃,低位补0;
#ifdef 和 #ifndef
#ifdef 标识符
程序段1
#else
程序段2
#endif
**它的作用是:**当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
其中#else部分也可以没有,即:
#ifdef
程序段1
#denif
这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不
同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样
往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译:
#ifdef WINDOWS

本文是关于STM32编程中C语言的深入学习笔记,涵盖了逻辑与位运算、条件编译指令如`#ifdef`、`typedef`的使用、结构体参数传递、头文件引用、`volatile`关键字、枚举(`enum`)以及C语言的存储类型(如`auto`、`register`、`static`和`extern`)。通过对这些知识点的讲解,有助于提升STM32开发中的C语言应用能力。
最低0.47元/天 解锁文章
1256

被折叠的 条评论
为什么被折叠?



