【问题标题】:error : storage class specified for parameter错误:为参数指定的存储类
【发布时间】:2010-09-09 13:27:26
【问题描述】:

我编写了一个 C 代码。当我在 Linux 上编译它时,在头文件中它说 以下错误:storage class specified for parameter i32 , i8 等等

typedef int i32;

typedef char    i8;

【问题讨论】:

  • 您需要显示更多代码。
  • 糟糕的问题,应该用实际的坏代码更新..
  • 你们为什么都在批评?如果这个人知道问题到底出在哪里,他们会修复它,而不是发布 sn-p。还是您要粘贴 10 kLOC?这个问题被投了赞成票,因为它是一个普遍而神秘的问题,但答案很好。
  • 我在做白日梦时遇到了这个错误,并在类定义中声明了一个 memebr 函数为extern(羞怯地滑下,脸颊燃烧)

标签: c linux


【解决方案1】:

您可能在某个地方忘记了头文件中的分号。确保每一行都以;结尾

【讨论】:

  • 这个。该错误可能会在您确定没有接触过的某些源代码文件中报告 - 但该文件恰好包含有语法错误的头文件。
  • 谢谢!就在现场
  • 这个简单的错误报告的错误数量几乎让我想退出编程
  • ?? ? 干杯。如此明显。但我错过了。呃
  • 谢谢@Featherlegs 我遇到了同样的问题,一个半结肠浪费了半个小时或更长时间。
【解决方案2】:

我也有同样的经历。问题出在头文件中的函数原型声明处,函数声明末尾缺少分号。

在错误 sn-p 之前,该函数在编译日志中显示为“In function ...”

希望这会有所帮助!

【讨论】:

  • @LPs 我不同意——这是 OP 提出的问题的一种可能答案(事实上,这是我需要的答案)。
【解决方案3】:

您在某处有一些代码,可能在错误消息的全文中指出,它执行如下操作:

void function(static int foo)

那里不允许使用static。它也可以是另一个存储类,例如registerextern

【讨论】:

    【解决方案4】:

    我曾经犯过同样的错误。解决方案是浏览文件并查找待处理的语句(例如非闭合括号或缺少分号。)通常这确实是一个微不足道的错误,但编译器会抱怨。

    坏消息是它并不总是在正确的行(甚至在正确的文件中)抱怨!好消息是在这些情况下它会说一些有用的东西,例如:

    WRONGFILE.h: In function ‘FUNCTION_OF_ANOTHER_FILE_WRT_WRONG_FILE’"
    WRONGFILE:line:col: error: storage class specified for parameter ‘param’ before. 
    

    去检查其他报告的文件。

    【讨论】:

      【解决方案5】:

      加起来;:另一种情况可能是函数指针声明中缺少)

      extern void init_callbacks(void (*init)(), void (*end());
      

      *end 后缺少右括号)。

      【讨论】:

        【解决方案6】:

        如果您使用的是 vim 编辑器,您可以通过键入以下内容轻松找到丢失的分号:

        /[^;]\s*$
        

        ...然后向上/向下跳转(使用 N/n),直到找到有问题的行。

        【讨论】:

          【解决方案7】:

          我有类似的问题,而错误是在静态分配中缺少存储类名称。例如:

          .h:
          class MyClass {
             static const int something;
          }
          
          .cpp:
          const int something = 1; // returns error
          const int MyClass::something = 1; // OK
          

          【讨论】:

            猜你喜欢
            • 2012-05-22
            • 2017-11-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-12-02
            • 1970-01-01
            • 2020-07-23
            相关资源
            最近更新 更多