1. 程式人生 > >哪個大哥能給我解釋解釋這麽寫什麽來頭~?

哪個大哥能給我解釋解釋這麽寫什麽來頭~?

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,
};

哪個大哥能給我解釋解釋這麽寫什麽來頭~?