【读书笔记】 《轻松玩转 ARM Cortex-M4微控制器-基于 Kinetis K60》

第一章

registerauto
MCU的寄存器读写速度远快于RAM内存
register 尽可能的变量放在寄存器中
register int i;

register 变量必须是CPU寄存器接受的类型
register 变量必须是一个单个的值,长度应小于或等于整型长度,但是有机器的些寄存器也能存放整数
register 变量可能不存放在内存中,所以不能用取地址符'&'
只有局部变量和形参可以作为register 变量,全局变量不行
静态变量不能定义为 register

auto 编译器自动优化
auto int i; 等效于 int i;
continue;
break;
return ;
externstatic
static 修饰变量出现在函数内,函数结束,其值也不会被销毁
static 修饰函数 函数变为静态函数
extern 声明函数和变量在外部定义,提示编译器遇到此函数或变量时在其他模块中寻找定义
如果函数和变量定义时加了static修饰,那么即使使用extern声明外都定义,也不能在其他模块中调用此函数和变量
volatileconst
volatile 防止编译器对代码进行优化而导致没有执行指令或者执行有误
样例见 P6
const
sizeof
typedef
typedef unsigned long uint32
struct enum union
结构体内部空间优化 见P9
union 联合体 列表成员共用相同的内存 见P10
enum 枚举
按位取反'~' 逻辑取反'!'
~0 	 = 	0XFFFFFFFF   !0 = 0X1
~1 	 = 	0XFFFFFFFE   !1 = 0X0
~255 = 	0XFFFFFF00   !255 = 0X0
#操作符 
#define MKSTR(str) #str // MKSTR(aaa) --> "aaa"
 
##操作 合并变量名
#define PT(x) PT# #X //PT(A) --> PTA

你可能感兴趣的:(【读书笔记】 《轻松玩转 ARM Cortex-M4微控制器-基于 Kinetis K60》)