Rumah >pembangunan bahagian belakang >C++ >`_tmain() vs. main(): Bilakah Saya Harus Menggunakan Setiap dalam C ?`
Dalam C , kaedah utama untuk menentukan titik masuk program ialah main(), yang biasanya muncul dengan tandatangan:
int main();
Sebagai alternatif, Microsoft telah memperkenalkan sambungan khusus platform yang dipanggil _tmain(), yang menawarkan cara mudah untuk mengendalikan pengekodan aksara dalam persekitaran Windows.
Perbezaan utama antara _tmain() dan main() terletak pada pengendalian pengekodan aksara mereka. Walaupun main() menjangkakan argumen jenis char*, _tmain() membenarkan kedua-dua argumen char* dan wchar_t*, bergantung pada sama ada Unicode didayakan untuk kod yang disusun. Sambungan ini bertujuan untuk memudahkan peralihan antara Unicode dan set aksara berbilangbait pada platform Windows.
Jika Unicode didayakan semasa penyusunan, _tmain() akan disusun sebagai wmain() dan akan menerima hujah jenis wchar_t* . Sebaliknya, jika Unicode dilumpuhkan, _tmain() akan disusun sebagai main() dan menerima argumen jenis char*.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menggunakan _tmain() dan menentukan char* sebagai argumen jenis boleh membawa kepada tingkah laku yang tidak diingini apabila bekerja dengan kod didayakan Unicode, seperti yang diperhatikan dalam contoh yang diberikan dalam soalan. Ini kerana main() menjangkakan hujah wchar_t* dalam mod Unicode, yang membawa kepada tafsiran dan paparan rentetan Unicode yang salah.
Untuk menyelesaikan isu ini, adalah disyorkan untuk mematuhi garis panduan berikut apabila bekerja dengan pengekodan aksara dalam Persekitaran Windows:
Dayakan atau lumpuhkan Unicode secara eksplisit sepanjang codebase:
Benarkan untuk kedua-dua mod Unikod dan bukan Unikod menggunakan makro:
Atas ialah kandungan terperinci `_tmain() vs. main(): Bilakah Saya Harus Menggunakan Setiap dalam C ?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!