struct 初始化筆記
最近在看kernel的code, 裡面常有個好用的struct初始化方式, 可以只設定自己需要的值,相當彈性。 範例如下:建立一個 struct std,在main中初始化,再利用指標函數呼叫showme,把值印出來。 (這簡單例子不考慮buffer overflow問題) struct std{ int number; char name[128]; int (*get)(struct std *p); }; void showme(struct std *p) { printf("My number is:%d name:%s \n",p->number,p->name); } int main() { struct std mystd={ .number = 39, .name = "LuLu", .get = &showme, }; //* equals struct std mystd={39,"lulu",&showme}; (*mystd.get)(&mystd); //*call showme function with mystd parameter } 執行結果: My number is:39 name:LuLu