pygame学习教程(五)用exec优化上一个例子

前一篇
在C,C++代码重复工作用宏表示。举例。我用Msp430编程写的宏。
宏可以理解为文本替换。它的好处在于可以灵活地替换变量,举个例子。

#define        SETOUT(IONAME,IONUMBER) \
  P##IONAME##DIR|=BIT##IONUMBER;

这个解释##,##之间就是变量文本链接 具体SETOUT(1,3) 展开宏就是IONAME=1,
IONUMBER=3
P##IONAME##DIR|=BIT##IONUMBER;
相当于 “P”+IONAME+“DIR|=BIT”+IONUMBER+";"
结果是P1DIR|=BIT3
这样写的好处可以自己体会,至少每次置位不用费脑计算,也不用特意写一个函数,几个Msp430系列底层很实用的宏,其它单片机可以依据这个思路修改。

#define    DIM(a,b) \
  int  a,b;      
#define        SETOUT(IONAME,IONUMBER) \
  P##IONAME##DIR|=BIT##IONUMBER;

#define        SETB(IONAME,IONUMBER) \
  P##IONAME##OUT|=BIT##IONUMBER;

#define        SETIN(IONAME,IONUMBER) \
  P##IONAME##DIR&=~BIT##IONUMBER;

#define        CLRB(IONAME,IONUMBER) \
  P##IONAME##OUT&=~BIT##IONUMBER;

#define   SET_XOR(IONAME,IONUMBER) \
  P##IONAME##OUT ^= (1<<IONUMBER);

#define   SETONEBITH(NAME,NUMER)\
  NAME|=(128>>NUMER)
#define   SETONEBITL(NAME,NUMER)\
  NAME &=~(128>>NUMER)

#define   CHECK_IO(IONAME,IONUMBER) \
  (P##IONAME##IN & (1<<IONUMBER))

#define   CHECK_IOOUT(IONAME,IONUMBER) \
  (P##IONAME##OUT & (1<<IONUMBER))

在python里使用exec可以达到宏的效果,上一个例子。设想一下,我们放置两个按钮可以butto1.SetPo(); butto2.SetPo()。如果多个,多个实例化,就会显得很臃肿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值