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

留言

這個網誌中的熱門文章

C語言,大數運算,階層筆記

Raspberry Pi (ARMv6)上自幹一個微小作業系統

Linux VLAN 筆記