Rumah >pembangunan bahagian belakang >C++ >Apakah Perbezaan Antara `main()` dan `_tmain()` dalam C Berkenaan Argumen Baris Perintah?
Apabila menggunakan C , anda boleh menggunakan sama ada main() atau _tmain() untuk program kemasukan. Walaupun kedua-duanya mempunyai tujuan yang sama, terdapat perbezaan penting yang mengubah cara mereka memproses hujah.
Menurut piawaian C, utama ialah titik masuk yang ditetapkan untuk program. Ia mematuhi salah satu daripada dua tandatangan:
int main(); int main(int argc, char* argv[]);
Di mana argc menandakan bilangan argumen baris perintah dan argv ialah tatasusunan aksara yang mengandungi argumen.
_tmain, sebaliknya, ialah sambungan khusus Microsoft yang memudahkan peralihan antara Unicode (UTF-16) dan set aksara berbilangbait. Jika Unicode didayakan, _tmain disusun sebagai wmain, jika tidak, ia disusun sebagai utama.
Isu timbul kerana fungsi _tmain anda tidak ditakrifkan dengan betul. Wmain direka bentuk untuk menerima argumen wchar_t, bukan argumen char. Memandangkan pengkompil tidak menguatkuasakan peraturan ini untuk utama, tatasusunan rentetan wchar_t dihantar ke fungsi utama anda, yang mentafsirkannya sebagai rentetan char.
UTF-16, set aksara yang digunakan dalam Windows dengan Unicode didayakan , mewakili aksara ASCII sebagai pasangan bait: diikuti dengan nilai ASCII. Walau bagaimanapun, dalam CPU x86 dengan pesanan bait kecil-endian, susunan itu diterbalikkan. Ini bermakna bahawa dalam rentetan char, rentetan ditamatkan oleh bait nol, membawa program anda untuk mengenal pasti rentetan bait tunggal.
Apabila memulakan pengaturcaraan Windows, anda menghadapi beberapa pilihan:
_tmain dan entri program alamat utama dalam C , tetapi _tmain ialah sambungan Microsoft yang mengendalikan Unicode. Apabila berurusan dengan hujah, _tmain memerlukan wchar_t, manakala main beroperasi dengan char. Memahami perbezaan ini adalah penting untuk kelancaran pelaksanaan aplikasi C anda.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `main()` dan `_tmain()` dalam C Berkenaan Argumen Baris Perintah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!