错误:为参数指定了存储类


78

我写了一个C代码。当我在Linux上编译它时,然后在头文件中显示以下错误: storage class specified for parameter i32 , i8 依此类推


7
您需要显示更多代码。
Marcelo Cantos 2010年

3
一个糟糕的问题,应使用实际的错误代码进行更新
。– RushPL

17
你们为什么都批评?如果该人知道确切的问题出在哪里,那么他们会解决该问题,而不是发布代码段。还是要粘贴10 kLOC?这个问题被否决了,因为它是一个常见的奥秘问题,得到了很好的答案。
Vorac

1
当我做白日梦时,我得到了这个错误,并像extern类定义中一样声明了memebr函数(令人毛骨悚然地滑开,脸颊发红)
Mawg说,请恢复Monica

Answers:


270

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


这个。该错误可能会在您确定没有触摸的某些源代码文件中报告,但该文件恰好包含具有语法错误的头文件。
user149408 '18

18

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

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


18

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

在错误代码片段之前,该功能在编译日志中显示为“ In function ...”

希望这可以帮助!!


6
@LPs我不同意-这是OP提出的问题的一种可能答案(实际上,这是我需要的答案)。
Woodrow Barlow 2015年

6

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

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

去检查该其他报告的文件。


1

总结一下;)函数指针声明中可能缺少另一种情况:

(在之后缺少右括号*end)。


1

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

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.