SlideShare a Scribd company logo
1 of 10
Download to read offline
Preprocessor Directive หรือที่เรียกกันสั้น ๆ ว่า Directive นั้น
เป็นส่วนของ Source Code ที่จะทางานก่อนคอมไพเลอร์จะทาการ
ประมวลผล (Compiler) โดยคาสั่งประเภท Preprocessor Directive จะ
เริ่มต้นด้วยสัญลักษณ์ (#) เสมอ เช่น #includes, #defind เป็นต้น
#include <stdio.h>
void main(void)
{
printf(“Hello World”);
}

Compiler

Preprocessor
Translator
00100010000111..01100000011
00100010000111..01100000011
Includes
Includes เป็นการเรียกใช้ Preprocessor Directive ซึ่งจะเรียกใช้
ไฟล์ท่เก็บไว้ในไลบราลี เราสามารถเขียนได้ 2 รูปแบบดังนี้
ี
รูปแบบที่ 1
#includes <filename.h>
ในการทางานของโปรแกรมนั้น คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์
filename.h จากไลบราลีของภาษา C เพียงที่เดียวเท่านั้น
รูปแบบที่ 2
#includes filename.h
ในการทางานของโปรแกรมนั้น คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์
จากไลบราลีที่เก็บซอร์สโค้ดของเราก่อน ถ้าหากไม่เจอก็จะไปค้นหาที่ไล
บราลีของภาษา C
Conditional Compilation
Conditional Compilation เป็นกลุ่ม Preprocessor Directive ประเภทหนึ่งในภาษา C ซึ่ง
Preprocessor Directive ประเภทนี้เป็นกลุ่มคาสั่งควบคุมการทางานของโปรแกรมที่ใช้ในการ
ตัดสินใจ ซึ่งได้แก่ คาสั่ง #if, #ifdef และ endif โดยแต่ละคาสั่งมีการทางานดังนี้
Preprocessor Directive

ความหมายและการนาไปใช้งาน

คาสั่ง #if

ใช้ในการตรวจสอบเงื่อนไขในนิพจน์หนึ่ง ๆ ถ้าหากผลที่ได้ในนิพจน์นั้น ๆ มีค่า
เป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #if

คาสั่ง #ifdef

ใช้ในการตรวจสอบว่ามีการกาหนดค่าคงที่นั้น ๆ โดยใช้ #define ไว้แล้วใช่
หรือไม่ ถ้ามีค่าเป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #ifdef

คาสั่ง #ifndef

ใช้ในการตรวจสอบว่าไม่มีการกาหนดค่าคงที่นั้น ๆ โดยใช้ #define ไว้แล้วใช่
หรือไม่ ถ้ามีค่าเป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #ifdef

คาสั่ง #elif

ใช้ตรวจสอบเงื่อนไขในกรณีที่ใช้ #if, #ifdef และ #ifndef แล้วผลลัพธ์ที่ได้เป็น
เท็จ จากนั้นจะตรวจสอบเงื่อนไขใน #elif ต่อไป

คาสั่ง #else

ในกรณีตรวจสอบเงื่อนไข #if, #ifdef, #ifndef และ #elif แล้วผลลัพธ์ที่ได้เป็น
เท็จ หากกาหนด #else ผลที่ได้จะทางานภายใต้คาสั่ง #else

คาสั่ง #endif

เป็นการบอกจุดสิ้นสุดของเงื่อนไขของคาสั่ง #if, #ifdef, #ifndef, #elif และ
#else
มาโคร (Macro)
มาโคร (Macro) เป็นสิ่งที่ถูกกาหนดขึ้นมาเพื่อใช้งานร่วมกันทั้งโปร
เจ็กต์ ซึ่งแบ่งออกเป็น 2 ประเภท ได้แก่

มาโครที่ผู้เขียนโปรแกรมสร้างขึ้น (Macro Definition)

มาโครมาตรฐาน (Standard Predefined Positioning Macros)
มาโครที่ผู้เขียนโปรแกรมสร้างขึ้น (Macro Definition)
Macro Definition เป็นมาโครที่ถูกสร้างขึ้นโดยผู้เขียนโปรแกรม ใน
การกาหนดค่ามาโครสามารถกาหนดได้โดยใช้ Preprocessor Directive
#define ได้ดังนี้
#define<identifier><replacement token list>
โดยที่
identifier
replacement token list

เป็นชื่อของมาโครที่ต้องการสร้าง
เป็นสิ่งที่ต้องการให้มาโครนั้น ๆ ทางาน
มาโครอี ก รู ป แบบหนึ่ ง เป็ น มาโครที่ ส ามารถรั บ
ค่าพารามิเตอร์เพื่อประมวลผลในมาโครได้ ซึ่งมีรูปแบบ
ดังนี้
#define<identifier><parameter list><replacement token list>
โดยที่
identifier
เป็นชื่อของมาโครที่ต้องการสร้าง
parameter list
เป็นพารามิเตอร์ที่ต้องการกาหนดให้กับมาโครนั้น ๆ
replacement token list เป็นสิ่งที่ต้องการให้มาโครนั้น ๆ ทางาน
มาโครมาตรฐาน (Standard Predefined Positioning Macros)

เป็นมาโครมาตรฐานในภาษา C (ISO/ANSI) ให้ผู้ใช้เรียกใช้
มาโครเหล่ า นี้ ไ ด้ เ ลย (หากคอมไพเลอร์ ไ ม่ ส ามารถเรี ย กใช้ Macro
Standard ตัวใดตัวหนึ่งได้ ถือว่าคอมไพเลอร์ตัวนั้นยังไม่เป็นไปตาม
มาตรฐาน ISO/ANSI C)
Macro Standard

_FILE_
_LINE_
_STDC_

การใช้งาน

แสดงชื่อไฟล์ปัจจุบนที่เรียกใช้มาโคร
ั
แสดงบรรทัดปัจจุบัน
แสดงคอมไพเลอร์ ที่ ใ ช้ ง านว่ า เป็ น ไปตามมาตรฐาน
ISO/ANSI C หรือไม่ (1 = เป็น, 0 = ไม่เป็น)
_DATE_
แสดงวันที่ที่เรียกใช้มาโคร
_TIME_
แสดงวันเวลาที่เรียกใช้มาโคร
_TIMESTAMP_ แสดงวันที่และเวลาปัจจุบนที่เรียกใช้มาโคร
ั
Tip
• การเขียนมาโครมากกว่า 1 บรรทัด (Multiple Lines) หากผู้ใช้จะ
เขียนคาสั่งในมาโครหนึ่ง ๆ โดยใช้คาสั่งหลาย ๆ บรรทัด ให้ใส่
เครื่องหมาย blackslash () ในท้ายบรรทัดนั้น ๆ ด้วย ยกเว้น
บรรทัดสุดท้ายของมาโครนั้น ทั้งนี้เพื่อให้คอมไพล์ทราบว่า การ
ทางานของมาโครนั้น ๆ ยังไม่จบคาสั่ง
ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย
หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย
คู่มือเรียนเขียนโปรแกรมภาษา สานักพิมพ์ IDC PREMIER

More Related Content

What's hot

การเข้าใช้โปรแกรมซี Dev C++
การเข้าใช้โปรแกรมซี Dev C++การเข้าใช้โปรแกรมซี Dev C++
การเข้าใช้โปรแกรมซี Dev C++
dechathon
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
Fair Kung Nattaput
 
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
Ploy StopDark
 
การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.
Ploy StopDark
 
ส่วนประกอบวิชวลเบสิก
ส่วนประกอบวิชวลเบสิกส่วนประกอบวิชวลเบสิก
ส่วนประกอบวิชวลเบสิก
Nuunamnoy Singkham
 
คำสั่งในโปรแกรมภาษาซี
คำสั่งในโปรแกรมภาษาซีคำสั่งในโปรแกรมภาษาซี
คำสั่งในโปรแกรมภาษาซี
Supaksorn Tatongjai
 

What's hot (17)

59170259 ผลคุณี
59170259 ผลคุณี59170259 ผลคุณี
59170259 ผลคุณี
 
การเข้าใช้โปรแกรมซี Dev C++
การเข้าใช้โปรแกรมซี Dev C++การเข้าใช้โปรแกรมซี Dev C++
การเข้าใช้โปรแกรมซี Dev C++
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
Learn 2
Learn 2Learn 2
Learn 2
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
Chapter1
Chapter1Chapter1
Chapter1
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6
 
การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.การเขียนโปรแกรมเพื่องานอาชีพ 6.
การเขียนโปรแกรมเพื่องานอาชีพ 6.
 
C lu
C luC lu
C lu
 
ส่วนประกอบวิชวลเบสิก
ส่วนประกอบวิชวลเบสิกส่วนประกอบวิชวลเบสิก
ส่วนประกอบวิชวลเบสิก
 
Introduction of C++
Introduction of C++Introduction of C++
Introduction of C++
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
 
คำสั่งในโปรแกรมภาษาซี
คำสั่งในโปรแกรมภาษาซีคำสั่งในโปรแกรมภาษาซี
คำสั่งในโปรแกรมภาษาซี
 

Similar to งานทำ Blog บทที่ 13

การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
choco336
 
แคปเจอร์ คอม 59170031 group1
แคปเจอร์ คอม 59170031 group1แคปเจอร์ คอม 59170031 group1
แคปเจอร์ คอม 59170031 group1
Thamon Monwan
 

Similar to งานทำ Blog บทที่ 13 (20)

3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี
 
3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี
 
3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี3.1 โครงสร้างของภาษาซี
3.1 โครงสร้างของภาษาซี
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
Introduction Of C
Introduction Of CIntroduction Of C
Introduction Of C
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
โครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา Cโครงสร้างของโปรแกรมภาษา C
โครงสร้างของโปรแกรมภาษา C
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีการเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซี
 
C chap2
C chap2C chap2
C chap2
 
การเขียนโปรแกรม
การเขียนโปรแกรมการเขียนโปรแกรม
การเขียนโปรแกรม
 
แคปเจอร์ คอม 59170031 group1
แคปเจอร์ คอม 59170031 group1แคปเจอร์ คอม 59170031 group1
แคปเจอร์ คอม 59170031 group1
 
โครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซีโครงสร้างของโปรแกรมภาษาซี
โครงสร้างของโปรแกรมภาษาซี
 
งานทำBlog บทที่ 1
งานทำBlog บทที่ 1งานทำBlog บทที่ 1
งานทำBlog บทที่ 1
 
งานทำBlog บทที่ 1
งานทำBlog บทที่ 1งานทำBlog บทที่ 1
งานทำBlog บทที่ 1
 

More from รัสนา สิงหปรีชา

More from รัสนา สิงหปรีชา (20)

บทที่ 6-การใช้งานเทคโนโลยีสารสนเทศอย่างมีความรับผิดชอบ
บทที่ 6-การใช้งานเทคโนโลยีสารสนเทศอย่างมีความรับผิดชอบบทที่ 6-การใช้งานเทคโนโลยีสารสนเทศอย่างมีความรับผิดชอบ
บทที่ 6-การใช้งานเทคโนโลยีสารสนเทศอย่างมีความรับผิดชอบ
 
บทที่ 1 เทคโนโลยีสมัยใหม่เอาลงบล๊อก
บทที่ 1 เทคโนโลยีสมัยใหม่เอาลงบล๊อกบทที่ 1 เทคโนโลยีสมัยใหม่เอาลงบล๊อก
บทที่ 1 เทคโนโลยีสมัยใหม่เอาลงบล๊อก
 
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
 
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
3.1 การทำงานขั้นพื้นฐานของคอมพิวเตอร์
 
3.1 องค์ประกอบของคอมพิวเตอร์
3.1 องค์ประกอบของคอมพิวเตอร์3.1 องค์ประกอบของคอมพิวเตอร์
3.1 องค์ประกอบของคอมพิวเตอร์
 
บทที่ 2 ข้อมูล สารสนเทศ และความรู้
บทที่ 2  ข้อมูล สารสนเทศ และความรู้บทที่ 2  ข้อมูล สารสนเทศ และความรู้
บทที่ 2 ข้อมูล สารสนเทศ และความรู้
 
3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ
 
3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล3.3. ชนิดของข้อมูล
3.3. ชนิดของข้อมูล
 
คู่มือนักเรียน 3.1
คู่มือนักเรียน 3.1คู่มือนักเรียน 3.1
คู่มือนักเรียน 3.1
 
คู่มือครู
คู่มือครูคู่มือครู
คู่มือครู
 
3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ
 
3.7 การเขียนผังงาน
3.7 การเขียนผังงาน3.7 การเขียนผังงาน
3.7 การเขียนผังงาน
 
3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล3.5 การแสดงผลและการรับข้อมูล
3.5 การแสดงผลและการรับข้อมูล
 
3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์3.4 ตัวดำเนินการและนิพจน์
3.4 ตัวดำเนินการและนิพจน์
 
3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล
 
3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล3.3 ชนิดของข้อมูล
3.3 ชนิดของข้อมูล
 
3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน
 

งานทำ Blog บทที่ 13

  • 1.
  • 2. Preprocessor Directive หรือที่เรียกกันสั้น ๆ ว่า Directive นั้น เป็นส่วนของ Source Code ที่จะทางานก่อนคอมไพเลอร์จะทาการ ประมวลผล (Compiler) โดยคาสั่งประเภท Preprocessor Directive จะ เริ่มต้นด้วยสัญลักษณ์ (#) เสมอ เช่น #includes, #defind เป็นต้น #include <stdio.h> void main(void) { printf(“Hello World”); } Compiler Preprocessor Translator 00100010000111..01100000011 00100010000111..01100000011
  • 3. Includes Includes เป็นการเรียกใช้ Preprocessor Directive ซึ่งจะเรียกใช้ ไฟล์ท่เก็บไว้ในไลบราลี เราสามารถเขียนได้ 2 รูปแบบดังนี้ ี รูปแบบที่ 1 #includes <filename.h> ในการทางานของโปรแกรมนั้น คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์ filename.h จากไลบราลีของภาษา C เพียงที่เดียวเท่านั้น รูปแบบที่ 2 #includes filename.h ในการทางานของโปรแกรมนั้น คอมไพเลอร์จะค้นหาเฮดเดอร์ไฟล์ จากไลบราลีที่เก็บซอร์สโค้ดของเราก่อน ถ้าหากไม่เจอก็จะไปค้นหาที่ไล บราลีของภาษา C
  • 4. Conditional Compilation Conditional Compilation เป็นกลุ่ม Preprocessor Directive ประเภทหนึ่งในภาษา C ซึ่ง Preprocessor Directive ประเภทนี้เป็นกลุ่มคาสั่งควบคุมการทางานของโปรแกรมที่ใช้ในการ ตัดสินใจ ซึ่งได้แก่ คาสั่ง #if, #ifdef และ endif โดยแต่ละคาสั่งมีการทางานดังนี้ Preprocessor Directive ความหมายและการนาไปใช้งาน คาสั่ง #if ใช้ในการตรวจสอบเงื่อนไขในนิพจน์หนึ่ง ๆ ถ้าหากผลที่ได้ในนิพจน์นั้น ๆ มีค่า เป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #if คาสั่ง #ifdef ใช้ในการตรวจสอบว่ามีการกาหนดค่าคงที่นั้น ๆ โดยใช้ #define ไว้แล้วใช่ หรือไม่ ถ้ามีค่าเป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #ifdef คาสั่ง #ifndef ใช้ในการตรวจสอบว่าไม่มีการกาหนดค่าคงที่นั้น ๆ โดยใช้ #define ไว้แล้วใช่ หรือไม่ ถ้ามีค่าเป็นจริง คอมไพเลอร์จะเลือกประมวลผลคาสั่งหลังคาสั่ง #ifdef คาสั่ง #elif ใช้ตรวจสอบเงื่อนไขในกรณีที่ใช้ #if, #ifdef และ #ifndef แล้วผลลัพธ์ที่ได้เป็น เท็จ จากนั้นจะตรวจสอบเงื่อนไขใน #elif ต่อไป คาสั่ง #else ในกรณีตรวจสอบเงื่อนไข #if, #ifdef, #ifndef และ #elif แล้วผลลัพธ์ที่ได้เป็น เท็จ หากกาหนด #else ผลที่ได้จะทางานภายใต้คาสั่ง #else คาสั่ง #endif เป็นการบอกจุดสิ้นสุดของเงื่อนไขของคาสั่ง #if, #ifdef, #ifndef, #elif และ #else
  • 5. มาโคร (Macro) มาโคร (Macro) เป็นสิ่งที่ถูกกาหนดขึ้นมาเพื่อใช้งานร่วมกันทั้งโปร เจ็กต์ ซึ่งแบ่งออกเป็น 2 ประเภท ได้แก่ มาโครที่ผู้เขียนโปรแกรมสร้างขึ้น (Macro Definition) มาโครมาตรฐาน (Standard Predefined Positioning Macros)
  • 6. มาโครที่ผู้เขียนโปรแกรมสร้างขึ้น (Macro Definition) Macro Definition เป็นมาโครที่ถูกสร้างขึ้นโดยผู้เขียนโปรแกรม ใน การกาหนดค่ามาโครสามารถกาหนดได้โดยใช้ Preprocessor Directive #define ได้ดังนี้ #define<identifier><replacement token list> โดยที่ identifier replacement token list เป็นชื่อของมาโครที่ต้องการสร้าง เป็นสิ่งที่ต้องการให้มาโครนั้น ๆ ทางาน
  • 7. มาโครอี ก รู ป แบบหนึ่ ง เป็ น มาโครที่ ส ามารถรั บ ค่าพารามิเตอร์เพื่อประมวลผลในมาโครได้ ซึ่งมีรูปแบบ ดังนี้ #define<identifier><parameter list><replacement token list> โดยที่ identifier เป็นชื่อของมาโครที่ต้องการสร้าง parameter list เป็นพารามิเตอร์ที่ต้องการกาหนดให้กับมาโครนั้น ๆ replacement token list เป็นสิ่งที่ต้องการให้มาโครนั้น ๆ ทางาน
  • 8. มาโครมาตรฐาน (Standard Predefined Positioning Macros) เป็นมาโครมาตรฐานในภาษา C (ISO/ANSI) ให้ผู้ใช้เรียกใช้ มาโครเหล่ า นี้ ไ ด้ เ ลย (หากคอมไพเลอร์ ไ ม่ ส ามารถเรี ย กใช้ Macro Standard ตัวใดตัวหนึ่งได้ ถือว่าคอมไพเลอร์ตัวนั้นยังไม่เป็นไปตาม มาตรฐาน ISO/ANSI C) Macro Standard _FILE_ _LINE_ _STDC_ การใช้งาน แสดงชื่อไฟล์ปัจจุบนที่เรียกใช้มาโคร ั แสดงบรรทัดปัจจุบัน แสดงคอมไพเลอร์ ที่ ใ ช้ ง านว่ า เป็ น ไปตามมาตรฐาน ISO/ANSI C หรือไม่ (1 = เป็น, 0 = ไม่เป็น) _DATE_ แสดงวันที่ที่เรียกใช้มาโคร _TIME_ แสดงวันเวลาที่เรียกใช้มาโคร _TIMESTAMP_ แสดงวันที่และเวลาปัจจุบนที่เรียกใช้มาโคร ั
  • 9. Tip • การเขียนมาโครมากกว่า 1 บรรทัด (Multiple Lines) หากผู้ใช้จะ เขียนคาสั่งในมาโครหนึ่ง ๆ โดยใช้คาสั่งหลาย ๆ บรรทัด ให้ใส่ เครื่องหมาย blackslash () ในท้ายบรรทัดนั้น ๆ ด้วย ยกเว้น บรรทัดสุดท้ายของมาโครนั้น ทั้งนี้เพื่อให้คอมไพล์ทราบว่า การ ทางานของมาโครนั้น ๆ ยังไม่จบคาสั่ง
  • 10. ที่มา : คู่มืออบรมครูวิทยาศาสตร์ คณิตศาสตร์ คอมพิวเตอร์ โลก ดาราศาสตร์ และอวกาศ ระดับมัธยมศึกษาตอนปลาย หนังสือเรียนรายวิชาเพิ่มเติม การเขียนโปรแกรมเบื้องต้นด้วยภาษา C บริษทซัคเซสมีเดีย คู่มือเรียนเขียนโปรแกรมภาษา สานักพิมพ์ IDC PREMIER