/Zc:wchar_t (tipo nativo wchar_t)
Analizzare wchar_t
come tipo predefinito in base allo standard C++.
Sintassi
/Zc:wchar_t[-]
Osservazioni:
Se /Zc:wchar_t è attivo, wchar_t
è una parola chiave per un tipo integrale predefinito nel codice compilato come C++. Se si specifica /Zc:wchar_t- (con un segno meno) o nel codice compilato come C, wchar_t
non è un tipo predefinito. Viene invece wchar_t
definito come per typedef
unsigned short
nell'intestazione canonica stddef.h. L'implementazione Di Microsoft la definisce in un'altra intestazione inclusa da stddef.h e altre intestazioni standard.
Non è consigliabile /Zc:wchar_t- 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 Studio e si verifica l'errore del compilatore C2664 perché il codice sta tentando di convertire in modo implicito un unsigned short
wchar_t
in , è consigliabile modificare il codice per correggere l'errore, anziché impostare /Zc:wchar_t-.
L'opzione /Zc:wchar_t è attivata per impostazione predefinita nelle compilazioni C++ e viene ignorata nelle compilazioni C. L'opzione /permissive- non influisce su /Zc:wchar_t.
Microsoft implementa wchar_t
come valore unsigned a due byte. Esegue il mapping al tipo __wchar_t
nativo specifico di Microsoft. Per altre informazioni su wchar_t
, vedere Intervalli di tipi di dati e tipi fondamentali.
Se si scrive un nuovo codice che deve interagire con il codice precedente che usa ancora la typedef
versione di wchar_t
, è possibile fornire overload per le unsigned short
varianti e __wchar_t
di wchar_t
, in modo che il codice possa essere collegato con il codice compilato con /Zc:wchar_t o il codice compilato senza di esso. In caso contrario, è necessario fornire due build diverse della libreria, una con e una senza /Zc:wchar_t abilitata. 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 _WCHAR_T_DEFINED e _NATIVE_WCHAR_T_DEFINED simboli. Per altre informazioni, vedere Predefined Macros.
Se il codice usa le funzioni globali COM del compilatore, perché /Zc:wchar_t è ora attivo per impostazione predefinita, è consigliabile modificare i riferimenti espliciti a comsupp.lib (dal pragma di commento o dalla riga di comando) a comsuppw.lib o comsuppwd.lib. Se è necessario compilare 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 wchar_t
tipo predefinito non è supportato durante la compilazione del 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
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina Proprietà>di configurazione C/C++>Language.
Modificare la proprietà Considera wchar_t come tipo predefinito.
Per impostare l'opzione del compilatore a livello di codice
- Vedere TreatWChar_tAsBuiltInType.