コンパイラの警告 (レベル 1) C4042
'identifier': 指定されたストレージ クラスは、このコンテキストでは使えません。
このコンテキストでは、指定されたストレージ クラスをこの識別子と一緒に使用することはできません。 代わりに既定のストレージ クラスが使用されます。
extern
: identifier が関数の場合。auto
: identifier が仮引数またはローカル変数の場合。ストレージ クラスなし: identifier がグローバル変数の場合。
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;
}