Rumah >pembangunan bahagian belakang >C++ >Bolehkah Makro C/C Menggabungkan Rentetan Secara Terus Tanpa Fungsi Pembantu?

Bolehkah Makro C/C Menggabungkan Rentetan Secara Terus Tanpa Fungsi Pembantu?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 13:06:20209semak imbas

Can C/C   Macros Directly Concatenate Strings Without Helper Functions?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn