Поделиться через


Предупреждение компилятора (уровень 1) C4042

"идентификатор" : имеет недопустимый класс хранилища

Указанный класс хранилища нельзя использовать с этим идентификатором в этом контексте. Компилятор использует класс хранилища по умолчанию:

  • extern, если идентификатор является функцией.

  • auto, если идентификатор является формальным параметром или локальной переменной.

  • Класс хранилища отсутствует, если идентификатор является глобальной переменной.

Это предупреждение может быть вызвано указанием класса хранилища, отличного от register объявления параметра.

Следующий пример создает C4042

// C4042.cpp
// compile with: /W1 /LD
int func2( __declspec( thread ) int tls_i )    // C4042
// try the following line instead
// int func2( int tls_i )
{
   return tls_i;
}