Funzioni C standard

Le librerie di runtime C standard contengono entrambe le versioni Unicode UTF-16 (caratteri wide) delle funzioni stringa che possono essere usate con versioni Unicode e orientate ai byte di funzioni stringa che possono essere usate con caratteri da set di caratteri a byte singolo (SBCS). Il tipo di dati Unicode WCHAR è compatibile con il tipo di dati wchar_t in ANSI C e consente l'accesso alle funzioni stringa Unicode. Le versioni Unicode delle funzioni iniziano con le lettere "wcs" (o talvolta "_wcs"). Il tipo di dati CHAR usato per le tabelle codici è compatibile con il tipo di dati carattere char in ANSI C, per consentire l'accesso alle funzioni stringa di caratteri. Le versioni dei caratteri delle funzioni iniziano con le lettere "str". Esistono anche versioni speciali per i set di caratteri a byte doppio (DBCS) che iniziano con le lettere "_mbs".

Le librerie di runtime C standard includono funzioni generiche per tutte le funzioni stringa C standard. Iniziano con "_tcs" e sono elencati nel file di intestazione Tchar.h. Queste funzioni usano il tipo di dati TCHAR generico.

Un'applicazione deve aggiungere le righe seguenti per usare le funzioni generiche e compilare per Unicode.

#define _UNICODE

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

Si noti che sono necessari sia i file Tchar.h che Wchar.h e che è necessario anche il carattere di sottolineatura iniziale nella variabile _UNICODE. Questa denominazione è specifica per la libreria C standard. Il rendering "UNICODE" senza il carattere di sottolineatura è per i runtime di Microsoft Windows.

Le funzioni wcstombs e mbstowcs possono eseguire la conversione dal set di caratteri supportato dalla libreria C standard a Unicode e indietro, con alcune limitazioni. Per altre informazioni sulla conversione di stringhe da e verso Unicode, vedere Conversione tra tipi di stringa.

La funzione printf definita in Tchar.h supporta le stesse specifiche di formato delle funzioni di stampa Strsafe.h, ad esempio StringCbPrintf. Analogamente, Tchar.h definisce una funzione wprintf , in cui la stringa di formato stessa è una stringa Unicode.

Attenzione

La gestione del buffer insufficiente è implicata in molti problemi di sicurezza che comportano sovraccarichi del buffer. Vedere Informazioni di riferimento su Strsafe.h. Le funzioni definite in Strsafe.h forniscono un'elaborazione aggiuntiva per la gestione corretta del buffer nel codice. Sono destinati a sostituire le controparti C/C++ predefinite e specifiche implementazioni di Microsoft Windows. Per altre informazioni, vedere Considerazioni sulla sicurezza: Funzionalità internazionali.

 

Unicode nell'API Windows