Rumah >pembangunan bahagian belakang >C++ >Bolehkah Makro C/C Menggabungkan Rentetan Secara Terus Tanpa Fungsi Pembantu?
Penggabungan Makro dalam C/C : Pendekatan Alternatif
Mengenai penggabungan rentetan dengan makro dalam C/C , kebanyakan pembangun secara naluri mengambil jalan keluar untuk menghantar hujah kepada fungsi makro khusus. Walau bagaimanapun, adakah terdapat cara yang lebih langsung untuk menyelesaikan tugasan ini?
Pertimbangkan contoh berikut:
#define STR1 "s" #define STR2 "1" #define STR3 STR1 ## STR2
Matlamat di sini ialah untuk menggabungkanSTR1 dan STR2 untuk membentuk "s1." Menggunakan kaedah tradisional, seseorang mungkin melakukan perkara berikut:
#define CONCAT(x, y) x ## y #define STR3 CONCAT(STR1, STR2)
Tetapi adakah terdapat cara untuk mencapai ini tanpa fungsi tambahan?
Penggabungan Rentetan Makro Langsung
Untuk rentetan dalam C/C , sememangnya terdapat penyelesaian yang mudah:
#define STR3 STR1 STR2
Ini makro mengembang kepada:
#define STR3 "s" "1"
Dalam C, memisahkan rentetan dengan ruang seperti dalam "s" "1" adalah bersamaan dengan rentetan tunggal, "s1."
Kesimpulan
Walaupun kaedah tradisional dengan fungsi makro tambahan adalah serba boleh dan boleh mengendalikan kes yang lebih kompleks, pendekatan langsung yang digariskan di sini menyediakan cara yang mudah dan cekap untuk menggabungkan rentetan apabila menggunakan pengembangan makro.
Atas ialah kandungan terperinci Bolehkah Makro C/C Menggabungkan Rentetan Secara Terus Tanpa Fungsi Pembantu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!