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

คำสั่งพรีโปรเซสเซอร์ C/C++


ใน C หรือ C ++ เราพบบรรทัดต่าง ๆ ที่มีสัญลักษณ์ (#) สิ่งเหล่านี้เรียกว่าคำสั่งก่อนการประมวลผล บรรทัดเหล่านี้ได้รับการประมวลผลในขั้นตอนก่อนการประมวลผลก่อนที่จะคอมไพล์โค้ด ที่นี่เราจะเห็นคำสั่งก่อนการประมวลผลสามประเภทที่แตกต่างกัน เหล่านี้คือ −

  • การรวบรวมแบบมีเงื่อนไข
  • การควบคุมสาย
  • คำสั่งข้อผิดพลาด

บางครั้งเรากำหนดมาโครบางตัวในโปรแกรมของเรา การใช้คำสั่งการคอมไพล์แบบมีเงื่อนไข เราสามารถตรวจสอบว่ามีการกำหนดมาโครหรือไม่ เรายังควบคุมพวกมันได้ ดังนั้นหากมีการกำหนดมาโครหนึ่งไว้ ให้ทำงานบางอย่าง ไม่เช่นนั้น ให้ทำอย่างอื่นเช่นนั้น

คำสั่งการคอมไพล์แบบมีเงื่อนไขเป็นเหมือน #ifdef-#elif-#else-#endif ทุกบล็อก #ifdef ต้องลงท้ายด้วย #endif #elif หรือ #else เป็นตัวเลือก

ตัวอย่าง

#include <iostream>
#define MY_MACRO 10
using namespace std;
int main() {
   #ifdef MACRO
   cout << "MACRO is defined" << endl;
   #elif MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #endif
}

ผลลัพธ์

MY_MACRO is defined, value is: 10

ใช้คำสั่งควบคุมบรรทัดโดยพิมพ์ #line บางครั้งเราได้รับข้อผิดพลาดเกี่ยวกับหมายเลขบรรทัดที่ต้องการ เราสามารถอัปเดตหมายเลขบรรทัดโดยใช้คำสั่งนี้ หากเราวางสิ่งนี้และเปลี่ยนบรรทัดปัจจุบันเป็น 200 จากนั้นเส้นจะย้ายจาก 201 เป็นต้นไป

ตัวอย่าง

#include <iostream>
using namespace std;
int main() {
   cout<< "Current line is: " << __LINE__ << endl;
   #line 200
   cout << "Hello" << endl;
   cout << "World" << endl;
   cout<< "Current line is: " << __LINE__ << endl;
}

ผลลัพธ์

Current line is: 5
Hello
World
Current line is: 202

คำสั่งข้อผิดพลาดใช้เพื่อแสดงข้อผิดพลาดก่อนการคอมไพล์ สมมติว่าควรกำหนดมาโครหนึ่งรายการ แต่ถ้าไม่ได้กำหนดไว้ เราสามารถแสดงข้อความแสดงข้อผิดพลาดได้ สามารถทำได้โดยใช้ #error.

ตัวอย่าง

#include <iostream>
using namespace std;
int main() {
   #ifdef MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #else
   #error MY_MACRO should be defined
   #endif
}

ผลลัพธ์

#error MY_MACRO should be defined