static:
普通局部变量存储于进程栈空间,用完就释放;
静态局部变量static即使未赋值编译器也会把它初始化为0,且存储与进程的全局数据区。
全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动初始化;
普通全局变量对整个工程可以,其他文件可以使用extern外部声明后直接使用;
静态全局变量仅对当前文件可见,其他文件不可访问。
在定义不需要与其他文件共享的全局变量时加上static能有效降低程序模块之间的耦合,避免不同文件相同变量名的冲突。
大端模式:
数据的高字节保存在内存的低地址中,数据的低字节保存在内存的高地址中,类似把数据当成字符串处 理:地址由小向大增加,数据从高位往低位放
小端模式:
数据的高字节保存在内存的高地址中,数据的低字节保存在内存的低地址中,此存储模式将地址的高低 和数据位权有效结合,高地址部分权值高,低地址反之。
位操作符:
位与&,位或|,位取反~,位异或^
操作:只有0和0位或结果为0,其余全是1
&位与:只有1和1与的结果为1,其余全是0
设置a的bit3,清除a的bit3
设置a的bit3为1的方法:将a和000010000作|操作,即其它位不变,第3位变1
清除a的bit3的方法:将a和11110111做&操作,这样第3位变成0,其它位不变
#define BIT17 (0x1<<17)
static int a;
void set_bit17() {
a = a | BIT17;
}
void clear_bit17() {
a = a & (~BIT17);
}