Sdílet prostřednictvím


Standardní funkce jazyka C

Standardní knihovny modulu runtime jazyka C obsahují verze řetězcových funkcí Unicode UTF-16 (široký znak), které lze použít s Unicode a bajtovými verzemi řetězcových funkcí, které lze použít se znaky z jednobajtů znakových sad (SBCS). Datový typ Unicode WCHAR je kompatibilní s datovým typem wchar_t v ANSI C a umožňuje přístup k funkcím řetězce Unicode. Verze funkcí Unicode začínají písmeny "wcs" (nebo někdy "_wcs"). Znak datového typu použitý pro znakové stránky je kompatibilní s znakem datového typu v ANSI C, aby byl povolen přístup k funkcím řetězce znaků. Verze znaků funkcí začínají písmeny "str". Existují také speciální verze pro dvoubabajtů znakové sady (DBCS), které začínají písmeny "_mbs".

Standardní knihovny modulu runtime jazyka C obsahují obecné funkce pro všechny standardní řetězcové funkce jazyka C. Začínají na "_tcs" a jsou uvedeny v souboru hlavičky Tchar.h. Tyto funkce používají obecný datový typ TCHAR.

Aplikace musí přidat následující řádky pro použití obecných funkcí a kompilace pro Unicode.

#define _UNICODE

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

Všimněte si, že jsou vyžadovány jak soubory Tchar.h, tak Wchar.h a že je vyžadováno také úvodní podtržítko na proměnné _UNICODE. Tato nomenklatura je specifická pro standardní knihovnu jazyka C. "UNICODE" vykreslené bez podtržítka je pro moduly runtime systému Microsoft Windows.

Funkce wcstombs a mbstowcs můžou převést z znakové sady podporované standardní knihovnou jazyka C na Unicode a zpět s určitými omezeními. Další informace o překladu řetězců do a z Unicode naleznete v tématu Překlad mezi typy řetězců.

Funkce printf definovaná v Tchar.h podporuje stejné specifikace formátu jako funkce tisku Strsafe.h, například StringCbPrintf. Podobně Tchar.h definuje funkci wprintf, ve které samotný formátovací řetězec představuje řetězec Unicode.

Opatrnost

Špatné zpracování vyrovnávací paměti je spojeno s mnoha problémy se zabezpečením, které zahrnují přetečení vyrovnávací paměti. Viz referenční Strsafe.h . Funkce definované v strsafe.h poskytují další zpracování pro správné zpracování vyrovnávací paměti ve vašem kódu. Mají nahradit své integrované protějšky C/C++ a také konkrétní implementace systému Microsoft Windows. Další informace najdete v tématu aspekty zabezpečení: Mezinárodní funkce.

 

Unicode v rozhraní API systému Windows