Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Universal C Runtime Library (UCRT) suporta a maioria da biblioteca padrão C necessária para conformidade com C++. Implementa a biblioteca C99 (ISO/IEC 9899:1999), com algumas exceções:
- compatibilidade de tipo estrita em <complex.h>.
-
aligned_alloc, que provavelmente não será implementado porque o sistema operacional Windows não suporta alocações alinhadas. Em vez disso, use o não-padrão_aligned_malloc. strerrorlen_s- suporte atômico em <stdatomic.h>
- Suporte a threading em <threads.h>
O UCRT também implementa um grande subconjunto da biblioteca C POSIX.1 (ISO/IEC 9945-1:1996, a interface de programa de aplicação do sistema POSIX). No entanto, não está totalmente em conformidade com qualquer padrão POSIX específico. O UCRT também implementa várias funções e macros específicas da Microsoft que não fazem parte de um padrão.
Funções específicas para a implementação da Microsoft do Visual C++ são encontradas na biblioteca vcruntime. Muitas dessas funções são para uso interno e não podem ser chamadas pelo código do usuário. Alguns são documentados para finalidades de depuração e compatibilidade de implementação.
O padrão C++ reserva nomes que começam com um sublinhado no namespace global para a implementação. As funções POSIX e as funções de biblioteca de tempo de execução específicas da Microsoft estão no namespace global, mas não fazem parte da biblioteca de tempo de execução C padrão. É por isso que as implementações preferidas da Microsoft dessas funções têm um destaque principal. Para portabilidade, o UCRT também suporta os nomes padrão, mas o compilador do Microsoft C++ emite um aviso de descontinuação quando o código que os usa é compilado. Apenas os nomes padrão são preteridos, não as funções em si. Para suprimir o aviso, defina _CRT_NONSTDC_NO_WARNINGS antes de incluir quaisquer cabeçalhos no código que usa os nomes POSIX originais. Porque o padrão C não permite nomes não padrão em arquivos de cabeçalho, por padrão /std:c11 , e /std:c17 não expõe os nomes padrão para funções, tipos e macros POSIX. Se esses nomes forem necessários, defina _CRT_DECLARE_NONSTDC_NAMES para expô-los.
Certas funções na biblioteca C padrão têm um histórico de uso inseguro, devido a parâmetros mal utilizados e buffers não verificados. Essas funções geralmente são a fonte de problemas de segurança no código. A Microsoft criou um conjunto de versões mais seguras dessas funções que verificam o uso de parâmetros. Eles invocam o manipulador de parâmetros inválido quando um problema é detetado em tempo de execução. Por padrão, o compilador Microsoft C++ emite um aviso de obsolescência quando uma função é usada, que tem uma variante mais segura disponível. Quando você compila seu código como C++, você pode definir _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES como 1 para eliminar a maioria dos avisos. Essa macro permite que sobrecargas de modelo chamem as variantes mais seguras, mantendo o código-fonte portátil. Para suprimir o aviso, defina _CRT_SECURE_NO_WARNINGS antes de incluir quaisquer cabeçalhos no código que usa essas funções. Para obter mais informações, consulte Recursos de segurança na CRT.
Exceto conforme indicado na documentação para funções específicas, o UCRT é compatível com a API do Windows. Determinadas funções não são suportadas em aplicações da Loja Windows ou da Plataforma Universal do Windows (UWP). Essas funções são listadas em funções CRT não suportadas em aplicativos da Plataforma Universal do Windows.
Artigos relacionados
| Título | Descrição |
|---|---|
| Aplicativos UWP, o Tempo de Execução do Windows e o Tempo de Execução C | Descreve quando as rotinas UCRT não são compatíveis com aplicativos universais do Windows ou aplicativos da Microsoft Store. |
| Conformidade com ANSI C | Descreve nomes em conformidade com o padrão no UCRT. |
| UNIX | Fornece diretrizes para a portabilidade de programas para UNIX. |
| Plataformas Windows (CRT) | Lista os sistemas operacionais suportados pela CRT. |
| Compatibilidade com versões anteriores | Descreve como mapear nomes CRT antigos para os novos. |
Ficheiros de tempo de execução de C (CRT) e C++ Standard Library (STL) .lib |
Fornece uma visão geral dos arquivos da biblioteca CRT (.lib) e as opções do compilador associadas. |