CompatibilitàCompatibility

La libreria run-time di C universale (UCRT) supporta la maggior parte delle librerie standard di C necessarie per la conformità a C++.The Universal C Run-Time Library (UCRT) supports most of the C standard library required for C++ conformance. Implementa la libreria C99 (ISO/IEC 9899:1999) con le eccezioni delle macro generiche di tipo definite in <<tgmath.h> e la compatibilità di tipo strict in <complex.h>.It implements the C99 (ISO/IEC 9899:1999) library, with the exceptions of the type-generic macros defined in <tgmath.h>, and strict type compatibility in <complex.h>. UCRT implementa anche un subset di grandi dimensioni della libreria C POSIX.1 (ISO/IEC 9945-1:1996, POSIX System Application Program Interface), ma non è completamente conforme agli standard POSIX specifici.The UCRT also implements a large subset of the POSIX.1 (ISO/IEC 9945-1:1996, the POSIX System Application Program Interface) C library, but is not fully conformant to any specific POSIX standard. Inoltre, UCRT implementa diverse funzioni e macro specifiche per Microsoft non incluse in uno standard.In addition, the UCRT implements several Microsoft-specific functions and macros that are not part of a standard.

Le funzioni specifiche per l'implementazione Microsoft di Visual C++ si trovano nella libreria vcruntime.Functions specific to the Microsoft implementation of Visual C++ are found in the vcruntime library. Molte di queste funzioni sono per uso interno e non possono essere chiamate dal codice utente.Many of these functions are for internal use and cannot be called by user code. Alcune sono documentate per l'uso durante il debug e per la compatibilità dell'implementazione.Some are documented for use in debugging and implementation compatibility.

Lo standard C++ riserva all'implementazione i nomi che iniziano con un carattere di sottolineatura nello spazio dei nomi globale.The C++ standard reserves names that begin with an underscore in the global namespace to the implementation. Poiché le funzioni POSIX si trovano nello spazio dei nomi globale, ma non fanno parte della libreria run-time di C standard, le implementazioni specifiche per Microsoft di queste funzioni hanno un carattere di sottolineatura iniziale.Because the POSIX functions are in the global namespace, but are not part of the standard C runtime library, the Microsoft-specific implementations of these functions have a leading underscore. Per la portabilità, UCRT supporta anche i nomi predefiniti, ma il compilatore Visual C++ genera un avviso di deprecazione quando viene compilato il codice che li usa.For portability, the UCRT also supports the default names, but the Visual C++ compiler issues a deprecation warning when code that uses them is compiled. Solo i nomi POSIX predefiniti sono deprecati, non le funzioni.Only the default POSIX names are deprecated, not the functions. Per eliminare l'avviso, definire _CRT_NONSTDC_NO_WARNINGS prima di includere le intestazioni nel codice che usa i nomi POSIX originali.To suppress the warning, define _CRT_NONSTDC_NO_WARNINGS before including any headers in code that uses the original POSIX names.

Alcune funzioni nella libreria C standard hanno una storia di utilizzi non sicuri a causa di parametri usati in modo improprio e di buffer non controllati.Certain functions in the standard C library have a history of unsafe usage, because of misused parameters and unchecked buffers. Queste funzioni causano spesso problemi di sicurezza nel codice.These functions are often the source of security issues in code. Microsoft ha creato un set di versioni più sicure per queste funzioni che verifica l'uso dei parametri e richiama il gestore di parametro non valido quando viene rilevato un problema in fase di esecuzione.Microsoft created a set of safer versions of these functions that verify parameter usage and invoke the invalid parameter handler when an issue is detected at runtime. Per impostazione predefinita, il compilatore Visual C++ genera un avviso di deprecazione quando per una funzione in uso è disponibile una variante più sicura.By default, the Visual C++ compiler issues a deprecation warning when a function is used that has a safer variant available. Quando si compila il codice come C++, è possibile definire _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES come 1 per eliminare la maggior parte degli avvisi.When you compile your code as C++ , you can define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES as 1 to eliminate most warnings. Questo elemento usa gli overload dei modelli per chiamare le varianti più sicure e, allo stesso tempo, per mantenere portabile il codice di origine.This uses template overloads to call the safer variants while maintaining portable source code. Per eliminare l'avviso, definire _CRT_SECURE_NO_WARNINGS prima di includere le intestazioni nel codice che usa queste funzioni.To suppress the warning, define _CRT_SECURE_NO_WARNINGS before including any headers in code that uses these functions. Per altre informazioni, vedere Security Features in the CRT.For more information, see Security Features in the CRT.

Ad eccezione di quanto indicato nella documentazione per funzioni specifiche, UCRT è compatibile con l'API Windows.Except as noted within the documentation for specific functions, the UCRT is compatible with the Windows API. Alcune funzioni non sono supportate nelle app di Windows Store per Windows 8 o nelle app di Windows universale per Windows 10.Certain functions are not supported in Windows 8 Store apps or in Universal Windows apps on Windows 10. Queste funzioni sono elencate nell'articolo relativo alle funzioni CRT non supportate con /ZW, che enumera le funzioni non supportate da Windows Runtime.These functions are listed in CRT functions not supported with /ZW, which enumerates the functions not supported by the Windows Runtime.

TitoloTitle DescrizioneDescription
Windows Store Apps, the Windows Runtime, and the C Run-Time (App di Windows Store, Windows Runtime e runtime del linguaggio C)Windows Store Apps, the Windows Runtime, and the C Run-Time Descrive i casi in cui le routine UCRT non sono compatibili con le app di Windows universale o le app di Windows Store.Describes when UCRT routines are not compatible with Universal Windows apps or Windows Store apps.
ANSI C Compliance (Conformità ANSI C)ANSI C Compliance Descrive la denominazione conforme agli standard in UCRT.Describes standard-compliant naming in the UCRT.
UNIXUNIX Fornisce indicazioni per trasferire i programmi su UNIX.Provides guidelines for porting programs to UNIX.
Windows Platforms (CRT) (Piattaforme Windows (CRT))Windows Platforms (CRT) Elenca i sistemi operativi che CRT supporta.Lists the operating systems that are the CRT supports.
Backward Compatibility (Compatibilità con le versioni precedenti)Backward Compatibility Descrive come eseguire il mapping dei nomi CRT precedenti ai nuovi.Describes how to map old CRT names to the new ones.
CRT Library Features (Funzionalità della libreria CRT)CRT Library Features Fornisce una panoramica sui file della libreria CRT (.lib) e le opzioni del compilatore associate.Provides an overview of the CRT library (.lib) files and the associated compiler options.