c程序员,必须记口诀.

来源:互联网 发布:索尼官方授权店淘宝 编辑:程序博客网 时间:2024/05/01 21:50

 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,

有符号类型数据 比较运算 ,是当作无符号类型运算的