摘要: 1. 避免多语句宏的问题 // 有问题的情况 #define MACRO a = 1; b = 2; if (condition) MACRO; // a = 1; b = 2;; b = 2不受条件限制 else do_something_else(); #define MACRO do { a 阅读全文
posted @ 2024-06-09 18:47 变秃了也就变强了 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1. 区分&与&& 按位与(&)和逻辑与(&&) 例如 :if(0x8000) = if(很大的整数) 2. 什么是短路求值 if(a>b && c>d), 如果判断的a>b为真,则c>d不再进行判断 3. 值<<移动的位数(十六进制下的位操作)(8421码) #define ADC_CSR_AWD 阅读全文
posted @ 2024-06-09 16:52 变秃了也就变强了 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1.作用 防止编译器优化对该变量的访问过程,确保每次访问都能得到最新的值。 编译器通常会对代码进行优化,例如将变量的值存储在寄存器中,以减少对内存的访问 2.应用 场景:1.硬件寄存器 2.中断服务程序中的变量 3.多线程程序中的共享变量 //stm32f407xx.h typedef struct 阅读全文
posted @ 2024-06-09 15:54 变秃了也就变强了 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1. 基本用法 enum Color { //Color被称为枚举类型 RED, //默认是0开始 GREEN = 5, BLUE }; enum Color myColor; //enum Color myColor = RED; // myColor = 0 myColor = BLUE; // 阅读全文
posted @ 2024-06-09 14:39 变秃了也就变强了 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 常用写法 #ifdef __cplusplus //如果使用C++编译器(有__cplusplus宏定义) extern "C" { //告诉C++编译器按照C的名称修饰规则来处理函数名和变量名 #endif /* __cplusplus */ // 这里是C语言的函数声明或定义 void myCF 阅读全文
posted @ 2024-06-09 13:35 变秃了也就变强了 阅读(8) 评论(0) 推荐(0) 编辑