Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Stringize และ Token-pasting Operators ใน C

บทนำ

ในส่วนนี้เราจะดู 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