Menggunakan pemetaan teks generik

Khusus Microsoft

Untuk menyederhanakan pengembangan kode untuk berbagai pasar internasional, pustaka run-time Microsoft menyediakan pemetaan "teks generik" khusus Microsoft untuk banyak jenis data, rutinitas, dan objek lainnya. Pemetaan ini didefinisikan dalam TCHAR.H. Anda dapat menggunakan pemetaan nama ini untuk menulis kode generik yang dapat dikompilasi untuk salah satu dari tiga jenis set karakter: ASCII (SBCS), MBCS, atau Unicode, tergantung pada konstanta manifes yang #define Anda tentukan menggunakan pernyataan. Pemetaan teks generik adalah ekstensi Microsoft yang tidak kompatibel dengan ANSI.

Arahan praprosesor untuk pemetaan teks generik

#define Versi yang dikompilasi Contoh
_UNICODE Unicode (karakter lebar) _tcsrev peta ke _wcsrev
_MBCS Karakter multibyte _tcsrev peta ke _mbsrev
Tidak ada (default: baik _UNICODE dan _MBCS tidak ditentukan) SBCS (ASCII) _tcsrev peta ke strrev

Misalnya, fungsi _tcsrevteks generik , didefinisikan dalam TCHAR. H, memetakan ke mbsrev jika MBCS telah ditentukan dalam program Anda, atau jika _wcsrev_UNICODE telah ditentukan. Jika tidak _tcsrev , petakan ke strrev.

Jenis _TCHARdata teks generik , juga ditentukan dalam TCHAR. H, memetakan untuk mengetik char jika _MBCS ditentukan, untuk mengetik wchar_t jika _UNICODE ditentukan, dan untuk mengetik char jika tidak ada konstanta yang ditentukan. Pemetaan jenis data lainnya disediakan dalam TCHAR. H untuk kenyamanan pemrograman, tetapi _TCHAR adalah jenis yang paling berguna.

Pemetaan Tipe Data Teks Generik

Nama tipe data teks generik SBCS (_UNICODE, _MBCS tidak ditentukan) _MBCS ditentukan _UNICODE ditentukan
_TCHAR char char wchar_t
_TINT int int wint_t
_TSCHAR signed char signed char wchar_t
_TUCHAR unsigned char unsigned char wchar_t
_TXCHAR char unsigned char wchar_t
_T atau _TEXT Tidak ada efek (dihapus oleh preprocessor) Tidak ada efek (dihapus oleh preprocessor) L (mengonversi karakter atau string berikut ke mitra Unicode-nya)

Untuk daftar lengkap pemetaan teks generik rutin, variabel, dan objek lainnya, lihat Pemetaan teks generik.

Fragmen kode berikut mengilustrasikan penggunaan _TCHAR dan _tcsrev untuk pemetaan ke model MBCS, Unicode, dan SBCS.

_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);

Jika MBCS telah ditentukan, prapemrosesan memetakan fragmen sebelumnya ke kode berikut:

char *RetVal, *szString;
RetVal = _mbsrev(szString);

Jika _UNICODE telah ditentukan, prapemrosesan memetakan fragmen yang sama ke kode berikut:

wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);

Jika keduanya _MBCS dan _UNICODE belum didefinisikan, preprocessor memetakan fragmen ke kode ASCII byte tunggal, sebagai berikut:

char *RetVal, *szString;
RetVal = strrev(szString);

Makro ini memungkinkan Anda menulis, memelihara, dan mengkompilasi satu file kode sumber menggunakan rutinitas khusus untuk ketiga jenis set karakter.

END Khusus Microsoft

Baca juga

Pemetaan teks generik
Pemetaan jenis data
Pemetaan variabel konstanta dan global
Pemetaan rutin
Contoh program teks generik