8
การใช้มาโครมากเกินไปในจำนวนอาร์กิวเมนต์
ฉันมีมาโครสองตัวFOO2และFOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... ฉันต้องการกำหนดแมโครใหม่FOOดังนี้: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) แต่วิธีนี้ใช้ไม่ได้เนื่องจากมาโครไม่ทำงานเกินจำนวนอาร์กิวเมนต์ หากไม่มีการแก้ไขFOO2และFOO3มีวิธีกำหนดแมโครFOO(ใช้__VA_ARGS__หรือไม่เช่นนั้น) เพื่อให้ได้ผลการเยี่ยงเดียวFOO(x,y)กับFOO2และFOO(x,y,z)เพื่อFOO3?
183
c
macros
c-preprocessor