บทนำ
ในส่วนนี้เราจะดู Stringize operator และ Token Pasting operator ใน C ทั้งคู่เป็น preprocessor operators
Stringize Operator (#)
ส่งคำสั่งให้คอมไพเลอร์แปลง token เป็นสตริง ใช้ใน macro definition ด้วย # ก่อนพารามิเตอร์
ตัวอย่างโค้ด
#include <stdio.h>
#define STR_PRINT(x) #x
int main() {
printf(STR_PRINT(This is a string without double quotes));
return 0;
}
ผลลัพธ์
This is a string without double quotes
Token Pasting Operator (##)
ส่งคำสั่งให้คอมไพเลอร์ต่อ token สองตัวเป็นสตริงเดียว ใช้ใน macro definition ด้วย ## ระหว่างพารามิเตอร์
ตัวอย่างโค้ด
#include <stdio.h>
#define STR_CONCAT(x, y) x##y
int main() {
printf("%d", STR_CONCAT(20, 50));
return 0;
}
ผลลัพธ์
2050