簡體   English   中英

有沒有辦法檢查在編譯時是否聲明了變量?

[英]is there a way to check if variable is declared at compile time?

我的意思是這樣的情況(這當然是錯誤的代碼/ idea only /,據我所知它不會那樣工作):

int main() {
  int my_int = 42;
  #ifdef my_int
    my_int = 43;
  #else
    int my_int = 43;
}

我知道c / c ++程序看不到變量名,也無法告訴它是否已設置,但是編譯器可以做到,我問這里有什么方法可以將編譯器定向到給定的操作,例如省略或插入代碼段代碼遇到相同塊中有重復聲明的情況。

不。當您有重復的聲明時,唯一可能發生的是編譯器錯誤。 它總是格式錯誤。 而且由於預處理器不了解變量,因此您也不能使用它。

不,沒有辦法。 即使有,使用它也會走上瘋狂的道路。

如果您知道符號的聲明以某個定義的常量為條件,請對該常量使用#ifdef來決定要做什么。

如果您不知道符號的聲明是基於什么條件的,那么您真的不應該搞混該符號,因為它顯然在您的項目外部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM