Funções C padrão

As bibliotecas de runtime C padrão contêm versões UNIcode UTF-16 (caractere largo) de funções de cadeia de caracteres que podem ser usadas com Unicode e versões orientadas a bytes de funções de cadeia de caracteres que podem ser usadas com caracteres de conjuntos de caracteres de byte único (SBCSs). O tipo de dados Unicode WCHAR é compatível com o tipo de dados wchar_t no ANSI C e permite o acesso às funções de cadeia de caracteres Unicode. As versões Unicode das funções começam com as letras "wcs" (ou às vezes "_wcs"). O tipo de dados CHAR usado para páginas de código é compatível com o caractere tipo de dados char em ANSI C, para permitir o acesso às funções de cadeia de caracteres. As versões de caractere das funções começam com as letras "str". Também há versões especiais para DBCSs ( conjuntos de caracteres de byte duplo ) que começam com as letras "_mbs".

As bibliotecas de runtime C padrão incluem funções genéricas para todas as funções de cadeia de caracteres C padrão. Eles começam com "_tcs" e são listados no arquivo de cabeçalho Tchar.h. Essas funções usam o tipo de dados TCHAR genérico.

Um aplicativo deve adicionar as linhas a seguir para usar as funções genéricas e compilar para Unicode.

#define _UNICODE

#include <tchar.h>
#include <wchar.h>

Observe que os arquivos Tchar.h e Wchar.h são necessários e que o sublinhado à esquerda na variável _UNICODE também é necessário. Essa nomenclatura é específica para a biblioteca C padrão. "UNICODE" renderizado sem o sublinhado é para os runtimes do Microsoft Windows.

As funções wcstombs e mbstowcs podem converter do conjunto de caracteres compatível com a biblioteca C padrão para Unicode e voltar, com algumas limitações. Para obter mais informações sobre como traduzir cadeias de caracteres de e para Unicode, consulte Tradução entre tipos de cadeia de caracteres.

A função printf definida em Tchar.h dá suporte às mesmas especificações de formato que as funções de impressão Strsafe.h, por exemplo StringCbPrintf. Da mesma forma, Tchar.h define uma função wprintf , na qual a cadeia de caracteres de formato em si é uma cadeia de caracteres Unicode.

Cuidado

A má manipulação de buffer está implicada em muitos problemas de segurança que envolvem estouros de buffer. Consulte Strsafe.h Reference. As funções definidas em Strsafe.h fornecem processamento adicional para tratamento de buffer adequado em seu código. Eles se destinam a substituir suas contrapartes internas do C/C++, bem como implementações específicas do Microsoft Windows. Para obter mais informações, consulte Considerações de segurança: recursos internacionais.

 

Unicode na API do Windows