C和指针 第十二章 结构体 总体赋值 error: expected expression

定义结构体后总体赋值时发生错误express

typedef struct NODE {
	struct NODE *fwd;
	struct NODE *bwd;
	int value;
} Node;
//声明变量
Node first;
first = {NULL, &second, 4};

错误: error: expected expressionspa

之因此不行是,{}内容被当作语句块了,c语言容许直接对结构体初始化,或者在赋值的时候加上类型说明,或者是逐一赋值。blog

初始化赋值: get

typedef struct NODE {
	int value
} Node;
//初始化赋值
Node a = {1};
Node b;
b = a;

添加类型赋值:io

Node A;
A = (Node){NULL, NULL, 1};

 单个赋值:class

Node A;
A.value = 1;

因此,除非初始化或者强制类型转换不然,没法总体赋值结构体。变量

http://stackoverflow.com/questions/12189480/why-structs-cannot-be-assigned-directlyerror

相关文章
相关标签/搜索