在看範例程式的時候,又看到奇怪的用法
do{
xxx( );
XXX( );
}while(0);
心想,雖然我c語言沒有很強,但是while(0) 不成立,只做一次,幹嘛不寫成
xxx( );
XXX( );
多浪費do while(0) 的動作
哈
網路上的文章寫得很清楚do while(0)
搞懂了為什麼之後
那麼,這樣寫code size會不會變大?
int c;
void a1(void){
c++;
}
void b1(void){
c++;
}
#define test() \
do { \
a1( ); \
b1( ); \
}while(0)
int main(void){
test();
//a1( );
//b1( );
while(1);
}
經過compiler的結果,test( ) ; 和 單獨使用 a1( ); b1( );,這樣的code size 並不會變大。
又偷學到了一招好用的define 技巧
沒有留言:
張貼留言