volatile 说明这个变量可能会被意想不到的改变,编译器每次都会去读这个值。
const 定义一个不被改变的量 const int a 意思为a是一个长整形数。
const int *a a是一个指向长整形数的指针,也就是说整形数不可被修改,但指针可以修改
#define BIT3 (0x1<<3)
int main()
{
int a=0xff;
a|=BIT3;
//将a的第三位置1
a&=~BIT3;//将a的第三位清0;
printf("c=%d\n",a);
}
访问特定地址改变值
int *ptr;
ptr= (int *)0x67a9;
*ptr=0xaa55;
中断中注意事项
中断中不能传值,不能有返回值,中断中的代码应该短而有效率。
unsigned int zero=0;
unsigned int compzero=~0;//这个可以不用考虑机器本身的处理器位数
unsigned int compzero=0xFFFF;//这个结果对字长位16位的机器是出错的
全局变量储存在静态数据库,局部变量储存在堆栈!