早先在看開源**中學到的乙個初始化結構體的技巧,今天剛剛用上。 特意整理了一下。
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...