1:循环次数规律:
for (count = 0; count < 10; count ++) 就是10次,
for (count = 10; count !=0; count --) 也是10 次,
for (count = 0; count < 9; count ++) 就是9次,
for (count = 1; count < 10; count ++) 就是9次,
2: 减法就是加法.负数就是这个数的正数的反码然后加1
1-1=0,原理就是 负1 二进制就是:1的反码就是 0xfe 然后加1 , 就是0xff . 0xff+1 值就是0.
所以0-0xff 等于1 .在linux内核中对于一个时钟节拍变量U32 jiffs .可以通过与jiffs相减来判断是否达到需要的延时.
3:一般情况下:指针都是4字节的变量. 上面保存另外一个变量的地址.
不管是结构体指针还是函数指针都是一样的,
4:返回结构体typ的成员member的偏移量
(unsigned long) (&((type *)0)->member)
5:把一个常数变成一个指针的写法是:
#define PAD_GPIO00 (*(volatile hw_iomux_t *) 0x40302010)
#define PAD_GPIO00_RD() (PAD_GPIO00.U)
#define PAD_GPIO00_WR(v) (PAD_GPIO00.U = (v))
6有符号类型数据 比较运算 ,是当作无符号类型运算的
unsigned char temp,temp2;
temp=192;
temp2=temp/100;
这个时候temp2为1,
当temp为有符号类型的时候,
temp2为0,
因为192等于0xc0化成有符合数就是1100 0000,
有符号类型数据 比较运算 ,是当作无符号类型运算的