c - 为什么错误: expected expression before '{' token happen when i try to initialize a struct variable

标签 c

这是我尝试初始化结构体 L 时使用的代码:

typedef struct {
    int data[20];
    int length;
} SqList;

SqList L;
L = {
 {1,2,3,4,5},
  5
 };

最佳答案

您不是在初始化,而是在赋值,因为 L 的声明和赋值是代码中两个独立的语句。

SqList L = {
    {1,2,3,4,5},
    5
};

它应该可以工作。

您可以稍后覆盖这个初始值,但请注意,您需要分配一个 SqList 对象,并且分配必须发生在函数的上下文中:

int main() {
    L = (SqList){ {1,2,3,4,5}, 5 };
}

关于c - 为什么错误: expected expression before '{' token happen when i try to initialize a struct variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717345/

相关文章:

c - Сan 我通过套接字收到文件后立即退出 С

c - bsearch 在循环中更改键

c++ - 包含的 C++/C 头文件的实现在哪里?

c++ - fwrite() 与 write() 存在磁盘缓存

c - 将 Unix 目录内容打印为普通文本文件

c - 在 xp 中从 cmd/dos 运行 c 程序

c - txt在c中分隔字符串

c - 在 Linux 中无法通过 C 执行“ls”命令

c - 为什么最小化到工具栏并最大化控制台窗口后图形(点)全部被清除,但文本仍然在上面?

c - 快速关闭的 C 程序