Computer >> Máy Tính >  >> Lập trình >> lập trình C

Các toán tử # và ## trong C?

Trong phần này, chúng ta sẽ xem toán tử Stringize (#) và toán tử dán mã thông báo (##) là gì trong C. Toán tử Stringize là một toán tử tiền xử lý. Nó gửi các lệnh tới trình biên dịch để chuyển đổi mã thông báo thành chuỗi. Chúng tôi sử dụng toán tử này ở định nghĩa macro.

Sử dụng toán tử stringize, chúng tôi có thể chuyển đổi một số văn bản thành chuỗi mà không cần sử dụng bất kỳ dấu ngoặc kép nào.

Ví dụ

#include<stdio.h>
#define STR_PRINT(x) #x
main() {
   printf(STR_PRINT(This is a string without double quotes));
}

Đầu ra

This is a string without double quotes

Toán tử Dán mã là một toán tử tiền xử lý. Nó gửi các lệnh tới trình biên dịch để thêm hoặc nối hai mã thông báo thành một chuỗi. Chúng tôi sử dụng toán tử này ở định nghĩa macro.

Ví dụ

#include<stdio.h>
#define STR_CONCAT(x, y) x##y
main() {
   printf("%d", STR_CONCAT(20, 50));
}

Đầu ra

2050