У меня написан код C. Когда я компилирую его в Linux, то в файле заголовка говорится:
следующая ошибка: storage class specified for parameter i32 , i8
и т.д.
typedef int i32;
typedef char i8;
У меня написан код C. Когда я компилирую его в Linux, то в файле заголовка говорится:
следующая ошибка: storage class specified for parameter i32 , i8
и т.д.
typedef int i32;
typedef char i8;
Скорее всего, вы забыли точку с запятой в файле заголовка где-нибудь. Убедитесь, что каждая строка заканчивается на ;
У вас есть какой-то код где-нибудь, вероятно, указанный в полном тексте сообщения об ошибке, который делает что-то вроде этого:
void function(static int foo)
static
там не допускается. Это может быть и другой класс хранения, например register
или extern
.
У меня был такой же опыт. Проблема заключалась в объявлении прототипа функции в файле заголовка, где в конце объявления функции отсутствовала точка с двоеточием.
Функция была указана в журналах компиляции как "В функции..." непосредственно перед фрагментом ошибки
Надеюсь, это поможет!
Я понес эту ошибку один раз. Решение состояло в том, чтобы просматривать файлы и искать ожидающие утверждения (например, незамкнутую скобку или отсутствующую точку с запятой). Обычно это действительно тривиальная ошибка, но компилятор жалуется.
Плохая новость заключается в том, что она не всегда жалуется на правильную линию (или даже в правильном файле!). Хорошей новостью является то, что в этих случаях она говорит что-то полезное, например:
WRONGFILE.h: In function ‘FUNCTION_OF_ANOTHER_FILE_WRT_WRONG_FILE’"
WRONGFILE:line:col: error: storage class specified for parameter ‘param’ before.
Перейдите и проверьте этот другой файл.
Чтобы добавить в ;
: другой случай может быть отсутствующим )
в объявлении указателя функции:
extern void init_callbacks(void (*init)(), void (*end());
(отсутствует закрывающая скобка после *end
).
У меня также был такой же недостаток с точкой с запятой в конце объявления функции в одном из моих файлов заголовков, потому что я столкнулся с множеством ошибок, что заставило меня немного нервничать. Я googled и нашел этот поток помог мне много.
Поэтому необходимо правильное объявление функций.