Предупреждение компилятора (уровень 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;
}