anonymous structs匿名結構體

2021-07-16 00:11:31 字數 654 閱讀 2580

在keil上程式設計時這樣乙個union

typedef union cdate ;

} cdate;

編譯器報錯:error:  #3093: anonymous structs are only supported in –gnu mode, or when enabled with #pragma anon_unions

預設設定無法使用匿名結構體,解決的辦法:

給結構體新增名字,比如day,但是使用的時候就必須鍵入這個名字,比如:

typedef union cdate date;

} cdate;

cdate date;

date.date.day = 1;

在misc controls中新增–gnu

在code中新增#pragma anon_unions

後兩種方法都不需要加入結構體名字,使用時會比較方便,比如:

cdate date;

date.day = 1;

我在使用第二種方法編譯時stm32的hal driver出現了警告,別小瞧了警告,有時候系統功能不正常可能就是某個警告引起的,為了避免可能出現的問題,還是選擇了第三種方法。

Haxe的結構體與匿名結構體

1 建立乙個匿名結構體 var mystructure 2 建立乙個復合匿名結構體 var user var start var target var current 引入typedef typedef point class path甚至匿名結構體還可以繼承 typedef point3 這樣就多...

go語言基礎 匿名結構體

結構體和函式一樣,也可以使用匿名結構體 使用匿名結構體也要直接賦值給變數,不要沒法使用 匿名結構體和匿名字段 沒有名字的結構體 a struct func type a struct b a b.string,b.int 匿名字段可以理解為欄位名和字段型別一致 packagemain import ...

C 語言中的匿名聯合體和匿名結構體

在 c 語言中,可以在結構體中宣告某個聯合體 或結構體 而不用指出它的名字,如此之後就可以像使用結構體成員一樣直接使用其中聯合體 或結構體 的成員。include struct person int main void printf d n jim.area code 如果不使用匿名結構體,則上述例...