Menggabungkan Rentetan Menggunakan Makro dalam C/C
Dalam C/C , makro boleh digunakan untuk menggabungkan rentetan. Soalan biasa timbul: adakah mungkin untuk menggabungkan rentetan secara langsung yang ditakrifkan sebagai makro, tanpa menggunakan fungsi makro perantaraan?
Pertimbangkan contoh berikut:
#define STR1 "s" #define STR2 "1" #define STR3 STR1 ## STR2
Matlamatnya adalah untuk menggabungkan STR1 dan STR2 untuk mendapatkan "s1" sebagai nilai STR3. Menggunakan fungsi makro lain untuk menghantar hujah ialah pilihan, tetapi adakah terdapat kaedah yang lebih mudah?
Penggabungan Terus
Memang, terdapat cara yang mudah untuk menggabungkan rentetan secara langsung menggunakan makro:
#define STR3 STR1 STR2
Takrifan ini menghasilkan perkara berikut pengembangan:
#define STR3 "s" "1"
Dalam C, menggabungkan rentetan dengan memisahkannya dengan ruang ("s" "1") adalah bersamaan dengan mempunyai rentetan tunggal ("s1"). Oleh itu, pendekatan ini berkesan mencapai gabungan rentetan yang diingini.
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!