定义结构体后整体赋值时发生错误
typedef struct NODE {
struct NODE *fwd;
struct NODE *bwd;
int value;
} Node;
//声明变量
Node first;
first = {NULL, &second, 4};
错误: error: expected expression
之所以不行是,{}内容被当做语句块了,c语言允许直接对结构体初始化,或者在赋值的时候加上类型说明,或者是逐一赋值。
初始化赋值:
typedef struct NODE {
int value
} Node;
//初始化赋值
Node a = {1};
Node b;
b = a;
添加类型赋值:
Node A;
A = (Node){NULL, NULL, 1};
单个赋值:
Node A;
A.value = 1;
所以,除非初始化或者强制类型转换否则,无法整体赋值结构体。
http://*.com/questions/12189480/why-structs-cannot-be-assigned-directly