คำสั่งตัวประมวลผลล่วงหน้าใน C ++ แสดงโดย # (แฮช) สัญลักษณ์ที่จุดเริ่มต้นของคำสั่ง คำสั่งตัวประมวลผลล่วงหน้าทั่วไปใน C ++ รวมถึง การรวมไฟล์ และ มาโคร คำนิยาม. คำสั่งเหล่านี้มักจะวางไว้นอกฟังก์ชัน main() ที่ด้านบนสุดของโปรแกรม C++ ระหว่างการประมวลผลล่วงหน้า ไฟล์ระดับกลางที่มีไฟล์ .ฉัน ส่วนขยายถูกสร้างขึ้น
#define คำสั่งใน C ++
ใน C++ คำสั่ง #define เป็นคำสั่งของตัวประมวลผลล่วงหน้าที่ใช้ในการกำหนดค่าคงที่หรือมาโคร อนุญาตให้คุณกำหนดชื่อสัญลักษณ์หรือค่าที่ใช้แทนรหัสทั้งหมดก่อนที่กระบวนการคอมไพล์จริงจะเกิดขึ้น
นี่คือไฮไลท์หลักบางประการของ #define ตัวประมวลผลล่วงหน้า
- ใน C++ คำสั่งตัวประมวลผลล่วงหน้า #define ใช้เพื่อกำหนดมาโคร
- มาโครใน C++ มีชื่อค่าคงที่หรือนิพจน์ที่ประกาศด้วยคำสั่ง #define
- #define directives เรียกอีกอย่างว่า Macro directives
- เมื่อพบคำสั่ง #define ในโปรแกรม C++ ชื่อของมาโครที่กำหนดจะถูกแทนที่ด้วยค่าคงที่หรือนิพจน์ในระหว่างขั้นตอนการคอมไพล์เริ่มต้น
ไวยากรณ์ของ #define Directive
ไวยากรณ์สำหรับการใช้คำสั่ง #define มีดังนี้:
#กำหนดค่าตัวระบุ
โดยที่ตัวระบุคือชื่อของค่าคงที่หรือแมโครที่ถูกกำหนด และค่าคือค่าที่ควรแทนที่ด้วยเมื่อโค้ดถูกคอมไพล์
ตัวอย่างของ #define Directive
ต่อไปนี้คือตัวอย่างที่อธิบายวิธีใช้ #define directive ในโค้ด C++:
#รวมถึง#กำหนด PI 3.14159
#กำหนดตาราง(x) ((x) * (x))
นานาชาติ หลัก ( ) {
สองเท่า รัศมี = 5.0 ;
สองเท่า พื้นที่ = ปี่ * สี่เหลี่ยม ( รัศมี ) ;
มาตรฐาน :: ศาล << 'พื้นที่: ' << พื้นที่ << มาตรฐาน :: จบ ;
กลับ 0 ;
}
ในตัวอย่างนี้ เรากำหนดค่าคงที่สองค่าโดยใช้ #define directive: PI ซึ่งแทนค่าคงที่ทางคณิตศาสตร์ pi และ SQUARE ซึ่งเป็นมาโครที่คำนวณกำลังสองของค่าที่กำหนด จากนั้นเราใช้ค่าคงที่เหล่านี้ในรหัสของเราเพื่อคำนวณพื้นที่ของวงกลมที่มีรัศมีที่กำหนด
ความแตกต่างระหว่าง #define และ const
คำถามทั่วไปข้อหนึ่งที่เกิดขึ้นเมื่อพูดถึง #define directive คือความแตกต่างจากการใช้ตัวแปร const ใน C++ อย่างไร แม้ว่าทั้งสองวิธีจะช่วยให้คุณสามารถกำหนดค่าคงที่ที่สามารถใช้ได้ตลอดทั้งโค้ดของคุณ แต่ก็มีข้อแตกต่างที่สำคัญบางประการระหว่างทั้งสองวิธี
ความแตกต่างที่สำคัญอย่างหนึ่งระหว่าง #กำหนด และ คอสต์ คือ #define เป็นคำสั่งตัวประมวลผลล่วงหน้าในขณะที่ const เป็นคำหลักที่เป็นส่วนหนึ่งของภาษา C ++ เอง ซึ่งหมายความว่าค่าคงที่ที่กำหนดโดยใช้ #define จะถูกแทนที่ด้วยค่าก่อนที่โค้ดจะถูกคอมไพล์ ในขณะที่ตัวแปร const จะถูกจัดการโดยคอมไพเลอร์เอง
ความแตกต่างที่สำคัญอีกประการระหว่าง #define และ const คือตัวแปร const มีประเภทเฉพาะ ในขณะที่ค่าคงที่ที่กำหนดโดยใช้ #define ไม่มี ซึ่งหมายความว่าคุณสามารถใช้ตัวแปร const ในตำแหน่งที่ต้องการประเภทเฉพาะ ในขณะที่ค่าคงที่ที่กำหนดโดยใช้ #define อาจใช้ไม่ได้ในสถานการณ์เหล่านั้นเสมอไป
บทสรุป
คำสั่ง #define เป็นคำสั่งตัวประมวลผลล่วงหน้าที่ใช้ในการกำหนดค่าคงที่หรือมาโคร ช่วยให้เราสามารถกำหนดชื่อสัญลักษณ์หรือค่าที่จะแทนที่ทั่วทั้งโค้ดก่อนที่กระบวนการคอมไพล์จริงจะเกิดขึ้น อ่านเพิ่มเติมเกี่ยวกับ #define directive ใน C++ ในบทความนี้