問題是typedef
如何在內部工作? PS:我在各種網站上搜索過,包括維基百科和各種網站。但他們都沒有回答這個問題。因此,這個問題。typedef如何在內部工作?
爲了進一步闡明:我確實瞭解了它的功能,但它是如何做到的。
問題是typedef
如何在內部工作? PS:我在各種網站上搜索過,包括維基百科和各種網站。但他們都沒有回答這個問題。因此,這個問題。typedef如何在內部工作?
爲了進一步闡明:我確實瞭解了它的功能,但它是如何做到的。
typedef
爲C
的關鍵字,它爲程序員提供一個工具,使自主
data type
別名從其他類型的或現有的內置類型。
這就是語言是如何實現的。
typedef <given_type> <new_type>
FYI:如果你
int a
它由編譯器解析,然後它才知道,a
是int
類型的變量。 並據此分配內存和全部內存。
同樣,只要找到typedef
關鍵字,就會假定緊隨其後的類型是old_type
,而其他新標識符是new_type
。
編輯:
ISO C99:存儲類型修飾符
The typedef specifier is called a ‘‘storage-class specifier’’ for syntactic convenience only.If, in a parameter declaration, an identifier can be treated either as a typedef name or as a parameter name, it shall be taken as a typedef name.A typedef declaration does not introduce a new type, only a synonym for the type so specified
任何編譯器如何處理未指定typedef
的;很可能類型信息被保存爲該名稱的符號表條目的一部分,並且在源代碼中遇到的任何類型名稱都會在翻譯過程中替換等效類型信息。
這是高度編譯器特定的。你應該指定一個編譯器,否則這個問題是毫無意義的。 – pmr
@pmr我使用gcc。 – Shash
由於'typedef'概念沒有延伸過編譯時間,所以'typedef'確實會在編譯器的[symbol table](http://en.wikipedia.org/wiki/Symbol_table)中插入一個額外的類型別名。沒有別的,真的。 – dasblinkenlight