[英]Typedef requirement in Objective-C vs C++
從我的閱讀中,我收集到你不需要在C ++中使用typedef,就像在Objective-C中一樣。 例如,在C ++中,您可以這樣做:
enum Order {first,second,third};
Order myOrder;
myOrder=first;
但是在Objective-C中,行Order myOrder;
首先需要一個typedef
:
typedef enum {first,second,third} Order; //noting also the placement of Order at the end
Order myOrder;
myOrder=first;
正確? 如果沒有Objective-C中的typedef
,你必須通過重復enum
來定義myOrder
:
enum Order {first,second,third};
enum Order myOrder;
myOrder=first;
如果事實上這一切都是正確的,我發現在語言中存在這種類型的語法差異有點奇怪,因為兩者都基於C並且這些都不是語言的面向對象性質所獨有的,因此應該只是筆直的CI會想。
實際上這並不奇怪,Objective-C是C的超集,而在C中你必須再次使用關鍵字enum
(對於關鍵字struct
),這樣就是連貫的。
如果您希望敏捷版本切換到Objective-C ++,那么作為C ++的超集允許不那么詳細的版本而不需要typedef
。
實際上Objective-C不是基於 C,它是C + Obective-C所以它是它的真正擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.