การแทนที่แมโคร (Macro Substitution) เป็นกลไกที่ให้การแทนที่สตริง สามารถทำได้ผ่าน "#define"
ใช้แทนที่ส่วนแรกด้วยส่วนที่สองของนิยามแมโคร ก่อนการทำงานของโปรแกรม
วัตถุแรกอาจเป็นประเภทฟังก์ชันหรือวัตถุธรรมดา
ไวยากรณ์
ไวยากรณ์สำหรับแมโคร:
#define first_part second_part
โปรแกรม
ในโปรแกรม สำหรับทุกครั้งที่พบ first_part จะถูกแทนที่ด้วย second_part ทั่วทั้งโค้ด
#include <stdio.h>
#define square(a) a*a
int main() {
int b, c;
printf("enter b element:");
scanf("%d", &b);
c = square(b); // แทนที่ c = b*b ก่อนการทำงานของโปรแกรม
printf("%d", c);
return 0;
}ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
enter b element: 4 16
พิจารณาอีกโปรแกรมหนึ่งที่อธิบายการทำงานของแมโคร:
#include <stdio.h>
#define equation (a*b)+c
int main() {
int a, b, c, d;
printf("enter a,b,c elements:");
scanf("%d %d %d", &a, &b, &c);
d = equation; // แทนที่ d = (a*b)+c ก่อนการทำงานของโปรแกรม
printf("%d", d);
return 0;
}ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
enter a,b,c elements: 4 7 9 37