程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> do {...} while (0) 的常見用途

do {...} while (0) 的常見用途

編輯:關於C語言

在一些Linux內核和其它的開源代碼中,我們經常看到像下面這樣的代碼:

do{  
 ...  
}while(0)

該代碼片段並非循環,這樣想想似乎使用do…while沒有任何意義,那麼為什麼還要使用它呢?

實際上,do{...}while(0)的用途並不僅僅是優化你的代碼。經過一系列的調研和探索,我們總結出它的一些用途如下。

1. 幫助定義復雜的宏以避免錯誤

詳細解釋請看“do {...} while (0) 在宏定義中的作用”,講述了如何利用do {...} while (0) 解決常犯的宏定義錯誤,讓大家不再懼怕宏。

2. 避免使用goto控制程序流

在一些函數中,我們在return語句之前可能需要做一些工作,比如釋放在函數一開始由malloc函數申請的內存空間,使用goto總是一種簡單的方法:

int foo()  
{  
    somestruct* ptr = malloc(...);  
       
    dosomething...;  
    if(error)  
    {  
        goto END;  
    }  
       
    dosomething...;  
    if(error)  
    {  
        goto END;  
    }  
    dosomething...;  
       
END:  
    free(ptr);  
    return 0;  
       
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved