/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 typedefunsigned 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 shortwchar_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_tnativo 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

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina Proprietà>di configurazione C/C++>Language.

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

Per impostare l'opzione del compilatore a livello di codice

Vedi anche

/Zc (conformità)