I have a C code written. When I compile it on Linux then in the header file it says the
following error: storage class specified for parameter i32 , i8
and so
I had similar issue, while error was missing the storage class name in static assignment. E.g.:
.h:
class MyClass {
static const int something;
}
.cpp:
const int something = 1; // returns error
const int MyClass::something = 1; // OK
i had the same experience. The problem was at the function prototype declaration in the header file where a semi colon was missing at the end of function declaration.
The function was indicated in the compilation logs as "In function ... " just before the error snippet
Hope this helps!!
To add up on ;
: another case can be a missing )
in a function pointer declaration:
extern void init_callbacks(void (*init)(), void (*end());
(missing closing parenthesis after *end
).
If you are using vim editor, you can easily find missing semicolon by typing:
/[^;]\s*$
...and then jump up/down (with N/n), until problematic line is found.
You have some code somewhere, probably indicated in the full text of the error message, that does something like this:
void function(static int foo)
The static
is not allowed there. It could also be another storage class, like register
or extern
.
Chances are you've forgotten a semicolon in a header file someplace. Make sure each line ends in ;