ที่นี่เราจะดูปริศนาภาษา C สมมติเรามีตัวเลข 2 ตัวคือ 48 และ 96 เราต้องการนำตัวเลขแรกต่อท้ายตัวเลขที่สอง ผลลัพธ์จะเป็น 9648 แต่ไม่สามารถใช้การดำเนินการตรรกะ คณิตศาสตร์ สตริง หรือฟังก์ชันสำเร็จรูปได้เลย จะทำอย่างไร?
วิธีนี้ง่ายมาก เราสามารถทำได้โดยใช้ Token Pasting operator (##) ใน C ตัวดำเนินการนี้เป็น preprocessor operator ส่งคำสั่งให้คอมไพเลอร์ต่อท้ายสอง token ให้เป็นสตริงเดียว เราใช้ตัวดำเนินการนี้ในการนิยาม macro
ตัวอย่างโค้ด
#include<stdio.h> #define MERGE(x, y) y##x main() { printf("%d", MERGE(48, 96)); }ผลลัพธ์
9648