Koma dalam Makro C/C
Dalam makro C/C, selalunya perlu memisahkan berbilang argumen dengan koma. Walau bagaimanapun, isu timbul apabila makro menjangkakan bilangan argumen tertentu dan memberikan lebih atau kurang menyebabkan ralat.
Senario Masalah
Pertimbangkan makro yang ditakrifkan seperti berikut:
Walaupun makro ini boleh digunakan secara ringkas, cth.:
Ia menjadi bermasalah apabila jenis kompleks terlibat:
Penyelesaian Tradisional
Satu pendekatan biasa ialah mencipta jenis alias baharu dan gunakannya dalam makro:
Berasaskan Makro Penyelesaian
Sebagai alternatif, anda boleh mentakrifkan makro yang mewakili koma:
Menggunakan makro ini, anda kini boleh menghantar jenis kompleks tanpa ralat:
Kes Penggunaan Tambahan
Pendekatan ini juga terbukti berguna apabila menyusun makro hujah, seperti yang digambarkan di bawah:
Kod ini akan mencetak:
std::map
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Koma dalam Argumen Makro C/C Kompleks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!