Preprocessor directives

Preprocessor directives เป็นบรรทัดของโปรแกรมที่จะถูกประมวลผลโดย processor ก่อนที่โปรแกรมจะได้รับการคอมไพล์ โดยชุดคำสั่งนั้นจะขึ้นต้นด้วยเครื่องหมาย hash (#) ข้อแตกต่างเล็กๆ จากคำสั่งปกติคือจะไม่มีเครื่องหมาย semicolon (;) เมื่อสิ้นสุดคำสั่ง เพราะว่ามันใช้การขึ้นบรรทัดใหม่ในการบอกการสิ้นสุดของคำสั่งแทน แต่ถ้าคุณต้องการเขียนในบรรทัดเดียวกันสามารถใช้เครื่องหมาย new line (/)

macro definitions (#define, #undef)

macro definitions เป็นชุดคำสั่งที่ใช้คำสั่ง #define และ #undef โดยมีรูปแบบคือ

#define identifier replacement
#undef identifier

ชุดคำสั่งนี้ใช้เพื่อแทนที่ ตัวอักษรใดๆ ที่พบที่เหมือนกับ identifier ให้เป็น replacement ตัวอย่างเช่น

#define TABLE_SIZE 10
int number[TABLE_SIZE];

ในตัวอย่าง เราได้สร้างคำสั่ง (directive) ที่มีชื่อว่า TABLE_SIZE และให้ตัวแทนที่คือ "10" เมื่อก่อนที่โปรแกรมคอมไพล์ processor จะหาคำว่า TABLE_SIZE และแทนที่มันด้วย 10 ดังนั้นข้างบนจะได้ผลลัพธ์เหมือนกันกับต่อไปนี้

int number[10];
เราสามารถยกเลิก (undefine) directives ใดๆ ที่เราสร้างไปโดยการใช้คำสั่ง #undef ของ macro ตัวอย่างเช่น
#undef TABLE_SIZE

Conditional inclusions (#ifdef, #ifndef, #if, #endif, #else and #elif)

Conditional inclusions เป็นชุดคำสั่งที่ใช้ในการตรวจสอบ macro directives ว่าได้เคยสร้างขึ้นก่อนหน้าหรือไม่ โดยไม่สำคัญว่าจะมีค่าเป็นอะไร

คำสั่ง #ifdef ใช้ตรวจสอบ marco identifier ที่ต้องการ ถ้ามันถูกสร้างไว้ก่อนหน้า processor จะทำการประมวลผลในบล็อคคำสั่งของ #ifdef โดยจะสิ้นสุดด้วยคำสั่ง #endif

#define TABLE_SIZE 100
#ifdef TABLE_SIZE
int number[TABLE_SIZE];
#endif;

คำสั่ง #ifndef เป็นคำสั่งที่ตรงกันข้ามกับคำสั่ง #ifdef โดยคำสั่งนี้จะตรวจสอบว่าถ้า macro directive นี้ไม่ได้สร้างก่อนหน้าจะเป็นจริง

#ifndef TABLE_SIZE
#define TABLE_SIZE 100
#endif;

สำหรับคำสั่ง #if, #endif, #else และ #elif ใช้ที่กับ marco directive ในการเปรียบเทียบเงื่อนไขกับค่าคงที่ คำสั่งเหล่านี้ทำงานเหมือนกับคำสั่ง if , else และ else ที่คุณได้เรียนไปก่อนหน้า

#if TABLE_SIZE>100
#undef TABLE_SIZE
#define TABLE_SIZE 200

#elif TABLE_SIZE<50
#undef TABLE_SIZE
#define TABLE_SIZE 50

#else
#undef TABLE_SIZE
#define TABLE_SIZE 100
#endif

int number[TABLE_SIZE];

Source file inclusion (#include)

คำสั่ง #include ใช้เพื่อ include ไลบรารี่มาตรฐานของภาษา C หรือไลบรารี่ที่เราสร้างขึ้นมาเองได้ เพื่อที่จะนำมาใช้ในการเขียนโปรแกรม เช่น การรับค่าและการแสดงผลทางคีย์บอร์ด เราจะใช้ไลบรารี่ stdio.h หรือ time.h สำหรับการใช้ฟังก์ชันเกี่ยวกับเวลา ตัวอย่างเช่น

#include <stdio.h>
#include <time.h>

#include "myLibrary.h"

ในตัวอย่าง สองบรรทัดแรกเป็นการ include ไลบรารี่มาตราฐานของภาษา C และอันที่สามเป็นการ include ไลบรารี่ที่คุณสร้างขึ้นมาเอง

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการใช้งาน processor directive ในเบื้องต้นของภาษา C


บทความเกี่ยวกับ Preprocessor directives

Preprocessor directives ในภาษา C++

Preprocessor directives เป็นบรรทัดคำสั่งในโปรแกรมที่จะถูกประมวลผลก่อนที่คอมไพล์เลอร์จะทำงาน มันทำงานโดย preprocessor และคำสั่งเหล่านี้จะต้องใส่เครื่องหมาย (#) น...

Preprocessor directives ในภาษา C#

Preprocessor directives เป็นคำสั่งของโปรแกรมที่ประมวลผลในตอนที่คอมไพเลอร์เริ่มต้นทำงาน ซึ่งมันทำงานโดย preprocessor และก่อนที่โปรแกรมจะสร้าง executable file ที่...

Directives ในภาษา Visual Basic

Directives คือชุดคำสั่งที่ประมวลผลโดย Preprocessor ก่อนที่โปรแกรมจะทำการคอมไพล์ หรือในบางทีเรียกว่า Preprocessor Directives มันเป็นชุดคำสั่งสำหรับควบคุมการทำงา...