2011-10-25 88 views
0

我以前在學習Ç知識,我知道預處理指令一樣#include#define是不是這就是爲什麼顧名思義,它是過程編譯程序之前的聲明,因此我們沒有必要在其末尾附加;預處理指令「使用」

在C++中,它向我介紹一個新的指令,即using,但爲什麼這個指令會附加一個分號?我認爲這就像之前的指令,我知道它不是一個聲明?

回答

5

using不是預處理指令。它由編譯器正確地看到和分析。

,你常常不把;#define宏結束的事實是因爲他們通過預處理器「簡單」的文本替換,如處理:

#define SOMETHING "abcd"; 

... 
    if (strcmp(thing, SOMETHING) == 0) { ... } 
... 

將是一個編譯器錯誤因爲編譯器會看到:

if (strcmp(thing, "abcd";) == 0) { ... } 
         //^invalid here 
0

using可以被認爲作爲一個聲明,例如像typedef是。

您可以要求編譯器輸出預處理結果,例如:與g++ -C -E,但沒有簡單的方法要求它輸出的效果using