【问题标题】:C error Variably modified at the file scope [duplicate]C错误在文件范围内进行了变量修改[重复]
【发布时间】:2013-12-16 01:21:07
【问题描述】:

是的,我是 c 新手,在处理以下代码时遇到了错误。:

typedef struct{
    int head;
    int length;
    Customer customer[MAX_LENGTH];

} CustomerCi;

出现的错误是:

“错误:在文件范围内可变地修改了‘客户’”

我不知道如何解决这个问题,任何帮助都将不胜感激(请记住,如果这似乎是一个愚蠢的问题,我是新手)。

【问题讨论】:

  • 我试过了,有些没用,有些我不完全理解

标签: c error-handling struct


【解决方案1】:

将 MAX_LENGTH 替换为文字值:

#define MAX_LENGTH 32

例如。

【讨论】:

  • 是的,它可以工作,但后来我需要 MAX_LENGTH 的值才能改变。
  • 我给出的前一行已经将 MAX_LENGTH 定义为“static const int MAX_LENGTH = 100;”
  • 您不能在 C 中更改数组的大小。要么使用带有 malloc/free 的指针,要么使用 linked list
  • 哦,好吧,因为我试图用它来衡量我的队列的大小
  • @user3050546:在 C 中,static const int MAX_LENGTH = 100; 仍被视为“变量”,MAX_LENGTH 不能用于需要常量的地方(例如,在 case 标签中,或在数组边界中文件范围)。在 C++ 中,它可以像这样使用。如果您想要 C++,请使用它。但是在 C 中,你不能做你尝试过的事情。
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
相关资源
最近更新 更多