簡體   English   中英

如何理解 typedef 的這種用法?

[英]How to understand this usage of typedef?

這是代碼:

typedef char FlagType;

int main()
{
}

int myproc( int )
{
    int FlagType;
}

https://docs.microsoft.com/en-us/cpp/c-language/typedef-declarations?view=msvc-160復制

據我了解,'typedef char FlagType' 使 'char a' 和 'FlagType a' 沒有區別。 但我無法理解'int FlagType'。

該代碼演示了一個病態的示例。 不是標准或推薦的用例。

它用於解釋當局部變量與 typedef 名稱具有相同名稱時會發生什么。

Typedef 名稱與普通標識符共享名稱空間(有關詳細信息,請參閱名稱空間)。 因此,一個程序可以有一個 typedef 名稱和一個同名的本地范圍標識符。

如果您閱讀上面的幾行,它們描述的是命名空間是如何分離的。

此示例顯示了一個名為FlagTypechar類型的typedef和一個名為FlagTypeint類型的myproc()變量。

這是愚蠢的,沒有人應該這樣做,但從語言解析的角度來看這是合法的。

當我第一次了解嵌套匿名結構時,我有同樣的“WTF‽”反應。

暫無
暫無

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

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