ในภาษา C สามารถประกาศตัวแปรเป็นค่าคงที่ได้ 2 วิธีหลัก ได้แก่ การใช้คีย์เวิร์ด const
#define รายละเอียดของแต่ละวิธีมีดังนี้
คีย์เวิร์ด const
สามารถประกาศตัวแปรเป็นค่าคงที่ได้โดยวางคีย์เวิร์ด const นำหน้าชนิดข้อมูลของตัวแปร ตัวแปรค่าคงที่สามารถกำหนดค่าเริ่มต้นได้เพียงครั้งเดียวเท่านั้น ค่าเริ่มต้นของตัวแปรค่าคงที่จะเป็นศูนย์ (0) โดยอัตโนมัติ
ตัวอย่างการใช้งาน const
#include <stdio.h>
int main() {
const int a;
const int b = 12;
printf("The default value of variable a : %d", a);
printf("\nThe value of variable b : %d", b);
return 0;
}
ผลลัพธ์
The default value of variable a : 0
The value of variable b : 12
คำสั่ง #define พรีโพรเซสเซอร์
วิธีอีกวิธีหนึ่งคือการใช้ #define ซึ่งจะสร้างนามแฝง (alias) สำหรับค่าที่ต้องการ วิธีนี้ไม่ได้สร้างตัวแปรจริงๆ แต่เป็นการแทนที่ข้อความก่อนการคอมไพล์
ตัวอย่างการใช้งาน #define
#include <stdio.h>
#define num 25
int main() {
printf("The value of num is: %d", num);
return 0;
}
ผลลัพธ์
The value of num is: 25
สรุปความแตกต่าง
- const: สร้างตัวแปรจริง มีชนิดข้อมูล ช่วงขอบเขต (scope) และใช้หน่วยความจำ
- #define: เป็นการแทนที่ข้อความโดยพรีโพรเซสเซอร์ ไม่มีชนิดข้อมูล ไม่ใช้หน่วยความจำสำหรับตัวแปร