首页 > 其他 > 详细

哪个大哥能给我解释解释这么写什么来头~?

时间:2019-03-14 21:16:54      阅读:173      评论:0      收藏:0      [点我收藏+]

看内核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,
};

 

哪个大哥能给我解释解释这么写什么来头~?

原文:https://www.cnblogs.com/rivsidn/p/10533431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!