ฉันต้องการความช่วยเหลือในการทำสิ่งต่อไปนี้:
เลเบลแมโครตัวประมวลผลล่วงหน้า (x) จะต้องส่งออก "#x" เช่น
#define label(x) ...
ถ้าฉันเรียก label(aname) ผลลัพธ์จะเป็น "#aname" (ไม่มีเครื่องหมายคำพูด)
ฉันรู้ว่าความพยายามต่อไปนี้มีข้อผิดพลาด
#define label(x) #x // leads to "x"
#define label(x) \#x // is \"x"
#define label(x) "#x" // is "#x" (but not the content of x") "#otto"
อาจมีหนีแบบ #(ปอนด์) แต่ไม่รู้จะหนียังไง...
แก้ไข: ฉันเรียกใช้ "gcc -E test -o test.html" เพื่อรับผลลัพธ์ ประเด็นคือ: ฉันจะพิมพ์เครื่องหมายแฮช (#) ด้วยแม็คโครโดยใช้ความสามารถของตัวประมวลผลล่วงหน้าเท่านั้นได้อย่างไร