繼剛剛寫的,do while(0)的好處後,當然要找個實例來練習一下
平常最常用的就是數值飽和 和 deadband
以往程式都需要一直複製貼上,呵,我就是這樣
這樣程式會愈來愈大
利用define 的好處,改寫一下程式
以下是練習的程式
#define sa(value,sta) \
do { \
if (value>sta)value=sta;\
else if(value<-sta)value=-sta;\
}while(0)
//定義一個飽和的巨集
#define deadband(value,range) \
do{ \
if (value>range)value-=range; \
else if (value<-range)value+=range; \
else value=0; \
}while(0)
//定義一個deadband 的巨集
int main(void){
int c=-50,d;
deadband(c,3);
sa(c,10);
while(1);
}
喔?這樣以後要使用deadband 或是 飽和的程式時,就可以結省許多空間了,真的是太好了
那就可以寫自己專屬的lib了,好像很不賴的感覺。
沒有留言:
張貼留言