Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

# และ ## ตัวดำเนินการใน C ?


ในส่วนนี้เราจะดูว่าตัวดำเนินการ Stringize (#) และตัวดำเนินการ Token Paste (##) คืออะไรใน C. ตัวดำเนินการ Stringize คือตัวดำเนินการตัวประมวลผลล่วงหน้า มันส่งคำสั่งไปยังคอมไพเลอร์เพื่อแปลงโทเค็นเป็นสตริง เราใช้ตัวดำเนินการนี้ที่คำจำกัดความของมาโคร

การใช้ตัวดำเนินการ stringize เราสามารถแปลงข้อความบางส่วนเป็นสตริงได้โดยไม่ต้องใช้เครื่องหมายอัญประกาศ

ตัวอย่าง

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

ผลลัพธ์

This is a string without double quotes

โอเปอเรเตอร์การวางโทเค็นคือโอเปอเรเตอร์ตัวประมวลผลล่วงหน้า มันส่งคำสั่งไปยังคอมไพเลอร์เพื่อเพิ่มหรือเชื่อมสองโทเค็นเป็นสตริงเดียว เราใช้ตัวดำเนินการนี้ที่คำจำกัดความของมาโคร

ตัวอย่าง

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

ผลลัพธ์

2050