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?

Susan Sarandon
Lepaskan: 2024-12-24 16:32:11
asal
658 orang telah melayarinya

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

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
Salin selepas log masuk

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)
Salin selepas log masuk

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
Salin selepas log masuk

Ini makro mengembang kepada:

#define STR3 "s" "1"
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan