Подтвердить что ты не робот

Error: класс хранения, указанный для параметра

У меня написан код C. Когда я компилирую его в Linux, то в файле заголовка говорится: следующая ошибка: storage class specified for parameter i32 , i8 и т.д.

typedef int i32;

typedef char    i8;
4b9b3361

Ответ 1

Скорее всего, вы забыли точку с запятой в файле заголовка где-нибудь. Убедитесь, что каждая строка заканчивается на ;

Ответ 2

У вас есть какой-то код где-нибудь, вероятно, указанный в полном тексте сообщения об ошибке, который делает что-то вроде этого:

void function(static int foo)

static там не допускается. Это может быть и другой класс хранения, например register или extern.

Ответ 3

У меня был такой же опыт. Проблема заключалась в объявлении прототипа функции в файле заголовка, где в конце объявления функции отсутствовала точка с двоеточием.

Функция была указана в журналах компиляции как "В функции..." непосредственно перед фрагментом ошибки

Надеюсь, это поможет!

Ответ 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

У меня также был такой же недостаток с точкой с запятой в конце объявления функции в одном из моих файлов заголовков, потому что я столкнулся с множеством ошибок, что заставило меня немного нервничать. Я googled и нашел этот поток помог мне много.

Поэтому необходимо правильное объявление функций.