object-like macro ก็คือ macro ที่ใช้แทนที่คำ ตัวอย่างเช่น
#define PI 3.14
เป็นการกำหนดค่า PI ว่ามีค่าเท่ากับ 3.14 โดยค่านี้จะถูกแทนที่ลงในตัวแปร PI ก่อนที่จะ compile
ตัวอย่าง code สำหรับลองรันในโปรแกรม Dev c++
#include <stdio.h>
#define PI 3.14
int main () {
int r = 2;
double result = 2 * PI * r;
printf("Area of the circle is %f", result );
return 0;
}
รูปด้านล่างแสดงผลการรันโปรแกรม
หมายเหตุ โดยทั่วไปการ define แบบนี้ จะใช้คำที่เขียนด้วยตัวพิมพ์ใหญ่ เพื่อให้มีความแตกต่างจากตัวแปร
function-like macro ก็คือ macro ที่ใช้แทนที่ แต่จะมีลักษณะเหมือนกับ function ตัวอย่างเช่น
#define average(x,y) ((x+y)*5)
ถ้าใช้เขียน code ว่า
int avg = average(x1,x2)
ตอนที่ทำการ compile ตัว compiler จะเห็นเป็น
int avg = ((x1+x2)*5)
#define ต่างกับ function อย่างไร
สิ่งที่ต่างกันคือ การใช้ function ต้องมีการกระโดดเข้าไปทำงาน แล้วจึง return กลับออกมาจึงใช้เวลามากกว่าแต่ก็จะประหยัด code กว่า ส่วนการใช้ macro จะพบว่าจะถูกแทนที่ทุกครั้งที่เจอคำว่า average ดังนั้นเมื่อใช้งานใน code แล้วก็จะทำให้ code ยาวขึ้นแต่จะทำงานได้เร็วกว่า
หน้าที่เข้าชม | 419,691 ครั้ง |
ผู้ชมทั้งหมด | 257,599 ครั้ง |
เปิดร้าน | 5 มิ.ย. 2560 |
ร้านค้าอัพเดท | 4 ก.ย. 2568 |