[英]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 名稱和一個同名的本地范圍標識符。
如果您閱讀上面的幾行,它們描述的是命名空間是如何分離的。
此示例顯示了一個名為FlagType
的char
類型的typedef
和一個名為FlagType
的int
類型的myproc()
變量。
這是愚蠢的,沒有人應該這樣做,但從語言解析的角度來看這是合法的。
當我第一次了解嵌套匿名結構時,我有同樣的“WTF‽”反應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.