看内核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