การใช้คำสั่ง define
|
|
 |
|
#include <iostream.h>
#define START 0
#define END 5
#define SUM(X,Y) ((X)+(Y))
int main()
{
int one,two,three;
one=START;
two=END;
three=SUM(one,two);
cout<<one<<"\n";
cout<<two<<"\n";
cout<<three<<"\n";
return 0;
}
|
|
|
|
 |
[Download Code]
ตัวอย่างนี้แสดงวิธีการใช้คำสั่ง define
ครับ โดยมีรูปแบบอย่างที่เห็นนะแหละครับ อันแรกคือสร้าง START ให้มีค่าเท่ากับ
0 แล้วก็สร้าง END ให้มีค่าเท่ากับ 5 ครับ ส่วนต่อมาเป็นการสร้างมาโครนะครับ
มีรูปแบบคล้ายๆฟังก์ชั่น แต่สิ่งที่จะให้ทำจะเหมือนกับการให้ค่าครับ คือ
เว้นวรรคแล้วเขียนต่อเลย เพื่อนๆอาจสงสัยว่าทำไมผมต้องเขียน ((X)+(Y)) ด้วย
ทำไมไม่เขียนแค่ X+Y ล่ะ นี่ล่ะครับคือจุดสำคัญ เพราะถ้าหากเราเขียนแค่ x+y
ข้อผิดพลาดอาจเกิดขึ้นได้ครับ เวลาเขียนก็ให้เขียนวงเล็บกั้นไว้ให้หมดนะครับ
อย่าลืมนะครับว่า START กับ start เป็นคนละตัวกันครับ
|
|
 |
|
#include <iostream.h>
#define ONE
#define TWO
int main()
{
#ifdef ONE
int index;
#else
char name;
#endif
#ifndef TWO
int dd;
#endif
index=5;
cout<<index<<"\n";
return 0;
}
|
|
|
|
 |
[Download Code]
ตัวอย่างนี้มีคำสั่งเพิ่มขึ้นมาสองคำสั่งนะครับ
นั่นก็คือ #ifdef เป็นคำสั่งที่ใช้ตรวจว่ามีการ define ตัวแปรไว้หรือไม่
ในตัวอย่างก็คือตรวจว่ามีการ define one หรือไม่ ถ้ามีก็ให้สร้างตัวแปร index
ถ้าไม่มีก็ให้สร้างตัวแปร name แทน โดยใช้ #else ครั แล้วก็จบด้วย #endif
ครับ
ส่วนคำสั่งที่สองก็คือ #ifndef มีความหมายตรงข้ามกับ
#ifdef คืออันนี้จะตรวจสอบว่าไม่มีการ define ไว้ เหมือนในตัวอย่าง คือ หากไม่มีการ
define TWO มันก็จะสร้าง dd ขึ้นมา แต่เรามีการ define TWO ไว้ คำสั่งในนี้ก็จะถูกข้ามไปครับ
คำสั่ง #ifndef นิยมใช้ก่อนคำสั่ง
#define เพื่อที่จะตรวจสอบว่ามีการ define ไว้หรือไม่ ถ้าไม่มีก็ให้ define
ซะ เช่น
#ifndef START
#define START
บทนี้สั้นๆ ไม่มีอะไรมากแต่สำคัญนะครับ
เพราะในโปรแกรมใหญ่ๆ เราจะเห็นคำสั่งพวกนี้อยู่เสมอครับ
|