【问题标题】:error: variably modified 'string' at file scope错误:在文件范围内可变地修改了“字符串”
【发布时间】:2016-10-22 16:43:21
【问题描述】:
#include <stdio.h>
#include <string.h>

const int STRING_SIZE = 40;
typedef char string[STRING_SIZE];

char typeInput(string message);

int main()
{
    typeInput("Hi my name is Sean");
}

char typeInput(string message)
{
    printf(" %s", message);
}

错误:在文件范围内可变地修改了“字符串” 由于某种原因,我不断收到此错误。我哪里做错了?

编辑: 以防万一我使用代码块

【问题讨论】:

  • 我将char变量命名为“string”
  • 等等什么意思(菜鸟程序员)
  • const int STRING_SIZE = 40; --> #define STRING_SIZE 40。还将typeInput 的返回类型从char 更改为void

标签: c


【解决方案1】:

在 C 中,const 不声明常量,而是声明只读变量。编译器报错是因为STRING_SIZE 不是常量。

解决方法:

enum { STRING_SIZE = 40 };
// enum creates constants in C (but only integer ones)

【讨论】:

    猜你喜欢
    • 2014-03-07
    • 2013-02-02
    • 2013-12-16
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多