哪個大哥能給我解釋解釋這麽寫什麽來頭~?
阿新 • • 發佈:2019-03-14
clu pri linx () turn alloc \n lib style
看內核code時候(linx-4.4.155/net/ipv6/ndisc.c : ndisc_send_na()),見到一種給結構體賦值的寫法,暫時沒弄明白是怎麽回事,先存下來。
#include <stdio.h> #include <stdlib.h> struct TEST { int aa; int bb; }; int main() { struct TEST *test = malloc(sizeof(test)); *test = (struct TEST) { //此處不加前邊那個 (struct TEST) 會報錯! .aa= 10, .bb = 20, }; printf("%d %d\n", tset->aa, test->bb); return 0; }
比較普遍的寫法是這樣
struct TEST { int aa; int bb; } test = {10, 20};
或者:
struct TEST { int aa; int bb; } test = { .aa = 10, .bb = 20, };
哪個大哥能給我解釋解釋這麽寫什麽來頭~?