結構體的初始化

2021-05-25 02:50:21 字數 544 閱讀 1129

早先在看開源**中學到的乙個初始化結構體的技巧,今天剛剛用上。 特意整理了一下。

struct _a

早先我所採用的方法(方法一)

struct _a a = ;

a.a = 1;

a.b = 2;

現在所採用的方法(方法二),是從開源**中所學會的, 定義結構體的同時初始化結構體成員變數

struct _a a = ;

相比較方法一, 方法二明顯簡潔,清晰明了,唯一的不足之處在於增加了學習的成本,但我想這也是完全可以接受的。

ps:反彙編了一下兩者的**, 證明了我的猜想方法二的執行效率也明顯高於方法一。

我不是效率偏執流,對我來說,程式的可讀性,可維護性更為重要。

貼一下方法一的彙編**。

這裡同時也解決了我的另乙個疑問,struct _a aaa = ; 到底是對結構體成員的第乙個成員賦值為0,還是將所有的成員賦值為0?

從彙編**中movl $0 -8(%ebp) movl $0 -4(%ebp) 兩行來看,很明顯是將所有的成員賦值為0。

方法二

結構體初始化 指定初始化

參考 c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 st...

結構體初始化

結構體變數初始化 tag 結構體,結構體變數,結構體變數宣告,結構體變數初始化,結構體變數引用,結構體成員變數引用 text c語言中引用變數的基本原則是在使用變數前,需要對變數進行定義並初始化。其方法是在定義變數的同時給其一初始值。結構體變數的初始化,遵循相同的規律。簡單變數的初始化形式如下 資料...

結構體嵌結構體的初始化

今天寫 首先宣告乙個結構體指標,結構體中嵌入的還有結構體,然後需要賦初值進行初始化,當時竟然懵的寫下了如下被注釋掉的初始化的 回來了自己用自己的電腦一寫就明白了自己的沙雕行為。include using namespace std struct man struct woman struct peo...