Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggabungkan Rentetan Ditakrif Makro dalam C/C Tanpa Operator?

Bagaimanakah Saya Boleh Menggabungkan Rentetan Ditakrif Makro dalam C/C Tanpa Operator?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 06:32:18646semak imbas

How Can I Concatenate Macro-Defined Strings in C/C   Without the  Operator?

Penggabungan Rentetan Berasaskan Makro dalam C/C

Penggabungan rentetan takrifan makro secara langsung dalam C/C tidak boleh dilakukan menggunakan ## pengendali prapemproses, yang bertujuan terutamanya untuk penyatuan token. Walau bagaimanapun, penyelesaian wujud untuk mencapai ini.

Pertimbangkan contoh berikut:

#define STR1      "s"
#define STR2      "1"
#define STR3      STR1 STR2

Kod ini mentakrifkan tiga makro: STR1 dengan rentetan literal "s", STR2 dengan "1", dan STR3 sebagai gabungan STR1 dan STR2. Peluasan STR3 menghasilkan:

#define STR3 "s" "1"

Walau bagaimanapun, dalam bahasa C, penjajaran dua rentetan yang dipisahkan oleh ruang putih (seperti dalam "s" "1") adalah bersamaan dengan rentetan tunggal "s1" .

Oleh itu, kod berikut secara langsung menggabungkan STR1 dan STR2 tanpa memerlukan ## pengendali:

#define STR3 STR1 STR2

Ini berkembang kepada:

#define STR3 "s1"

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Rentetan Ditakrif Makro dalam C/C Tanpa Operator?. 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