C和指针 第十二章 结构体 整体赋值 error: expected expression
Posted 日拱一卒,功不唐捐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C和指针 第十二章 结构体 整体赋值 error: expected expression相关的知识,希望对你有一定的参考价值。
定义结构体后整体赋值时发生错误
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://stackoverflow.com/questions/12189480/why-structs-cannot-be-assigned-directly
以上是关于C和指针 第十二章 结构体 整体赋值 error: expected expression的主要内容,如果未能解决你的问题,请参考以下文章