PIC单片机 C编程技巧(17)
发布时间:2021-06-06
发布时间:2021-06-06
六:五的方法还是烦琐,可以用粘贴符号的形式来简化它. 五的方法还是烦琐,可以用粘贴符号的形式来简化它. #i nclude<pic.h> typedef struct { unsigned b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1; } bits; #define _paste(a,b) a##b #define bitof(var,num) (((bits *)&(var))->_paste(b,num)) char myvar; char a,b; void main(){ a=bitof(myvar,0); b=bitof(myvar,1); if(bitof(myvar,7)) a=255; else a=100; while(1){;} } 有必要说说#define _paste(a,b) a##b 的意思: 的意思: 有必要说说 此语句是粘贴符号的意思, 符号之后. 此语句是粘贴符号的意思,表示把 b 符号粘贴到 a 符号之后. 例子中是 a=bitof(myvar,0);---> --->(((bits ---> *)&(myvar))->_paste(b,0))---> --->(((bits *)&(var))->b0) ---> 可以看出来, 后面, 可以看出来,_paste(b,0)的作用是把 0 粘贴到了 b 后面,成 的作用是把 了 b0 符号. 总结:C语言的优势是能直接对低层硬件操作, 总结:C语言的优势是能直接对低层硬件操作,代码可以非常 :C语言的优势是能直接对低层硬件操作