一种初始化小段数组的方法
单片机编程里用到很多小段数组,一般不超过20,用for和memset感觉很慢,呵呵。发现pm+编译的话直接写编译出来还不错,呵呵
方法如下:
#define CLR1(a) a=0
#define CLR2(a) CLR1(a);a=0
#define CLR3(a) CLR2(a);a=0
#define CLR4(a) CLR3(a);a=0
#define CLR5(a) CLR4(a);a=0
#define CLR6(a) CLR5(a);a=0
#define CLR7(a) CLR6(a);a=0
#define CLR8(a) CLR7(a);a=0
#define CLR9(a) CLR8(a);a=0
#define CLR10(a) CLR9(a);a=0
#define CLR11(a) CLR10(a);a=0
#define CLR12(a) CLR11(a);a=0
#define CLR13(a) CLR12(a);a=0
#define CLR14(a) CLR13(a);a=0
#define CLR15(a) CLR14(a);a=0
#define CLR16(a) CLR15(a);a=0
#define CLR17(a) CLR16(a);a=0
#define CLR18(a) CLR17(a);a=0
#define CLR19(a) CLR18(a);a=0
#define CLR20(a) CLR19(a);a=0
看看结果:
326 CLR10(b);
032B 0A43 XOR A,A
032D E9B4FE MOV !_b,A
0330 E9B5FE MOV !_b+0x1,A
0333 E9B6FE MOV !_b+0x2,A
0336 E9B7FE MOV !_b+0x3,A
0339 E9B8FE MOV !_b+0x4,A
033C E9B9FE MOV !_b+0x5,A
033F E9BAFE MOV !_b+0x6,A
0342 E9BBFE MOV !_b+0x7,A
0345 E9BCFE MOV !_b+0x8,A
0348 E9BDFE MOV !_b+0x9,A
理想,呵呵。 写法有意思~~顶LZ
页:
[1]