Condividi tramite


/Zc:wchar_t (Tipo nativo wchar_t)

Analizzare wchar_t come tipo predefinito in base allo standard C++. L'opzione /Zc:wchar_t è abilitata per impostazione predefinita.

/Zc:wchar_t[-]

Note

Se l'opzione /Zc:wchar_t è abilitata, viene eseguito il mapping di wchar_t al tipo nativo specifico di Microsoft __wchar_t. Se viene specificato il tipo /Zc:wchar_t- (con un segno meno), viene eseguito il mapping di wchar_t a typedef per unsigned short. In Visual C++ 6.0 e versioni precedenti, wchar_t non è implementato come tipo predefinito, ma è dichiarato in wchar.h come typedef per unsigned short. Il tipo /Zc:wchar_t- non è consigliato perché lo standard C++ richiede che wchar_t sia un tipo predefinito. L'uso della versione typedef può causare problemi di portabilità. Se si esegue l'aggiornamento da versioni precedenti di Visual C++ e si verifica l'errore del compilatore C2664 perché il codice sta cercando di convertire in modo implicito wchar_t in unsigned short, è consigliabile modificare il codice per risolvere l'errore, anziché impostare /Zc:wchar_t-.

Microsoft implementa wchar_t come valore unsigned a due byte. Per altre informazioni su wchar_t, vedere Intervalli dei tipi di dati e Tipi fondamentali (C++).

Se si scrive codice che deve interagire con codice precedente che usa ancora la versione typedef di wchar_t, è possibile fornire overload per entrambe le variazioni __wchar_t e unsigned short di wchar_t, in modo che il codice possa essere collegato con codice compilato con /Zc:wchar_t o con codice compilato senza di esso. In caso contrario, è necessario fornire due diverse build della libreria, una con /Zc:wchar_t abilitato e l'altra no. Anche in questo caso, è consigliabile compilare codice precedente usando lo stesso compilatore usato per compilare quello nuovo. Non combinare mai file binari compilati con compilatori diversi.

Quando si specifica /Zc:wchar_t, vengono definiti i simboli _WCHAR_T_DEFINED e _NATIVE_WCHAR_T_DEFINED. Per altre informazioni, vedere Macro predefinite.

Se il codice usa funzioni globali COM del compilatore, perché /Zc:wchar_t è ora abilitato per impostazione predefinita, è consigliabile modificare i riferimenti espliciti a comsupp.lib, dal pragma comment o sulla riga di comando, a comsuppw.lib o a comsuppwd.lib. Se è necessario eseguire la compilazione con /Zc:wchar_t-, usare comsupp.lib. Se si include il file di intestazione comdef.h, la libreria corretta viene specificata automaticamente. Per informazioni sul supporto COM del compilatore, vedere Supporto COM del compilatore.

Il tipo wchar_t non è supportato quando si compila codice C. Per altre informazioni sui problemi di conformità con Visual C++, vedere Comportamento non standard.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Utilizzo di proprietà di progetto.

  2. Nel riquadro sinistro espandere Proprietà di configurazione, C/C++, quindi selezionare Lingua.

  3. Modificare la proprietà Considera wchar_t come tipo predefinito.

Per impostare l'opzione del compilatore a livello di codice

Vedere anche

Riferimenti

/Zc (Conformità)