#define डायरेक्टिव एक प्रीप्रोसेसर डायरेक्टिव है; प्रीप्रोसेसर कंपाइलर द्वारा इसे देखने से पहले उन मैक्रोज़ को उनके बॉडी से बदल देता है। इसे अपने सोर्स कोड के स्वचालित सर्च और रिप्लेस के रूप में सोचें।
एक const वेरिएबल डिक्लेरेशन भाषा में एक वास्तविक वेरिएबल घोषित करता है, जिसे आप एक वास्तविक वेरिएबल की तरह उपयोग कर सकते हैं: इसका पता लें, इसे पास करें, इसे कास्ट करें, इसे कन्वर्ट करें, आदि।
कंपाइलर ऑप्टिमाइजेशन के बिना, दोनों से जुड़े विभिन्न मामलों में मेमोरी आवंटन की एक छिपी हुई लागत होती है। लेकिन उचित ऑप्टिमाइजेशन के साथ वे कमोबेश समान हैं। इसके अलावा, प्रीप्रोसेसर मैक्रोज़ का कोई स्कोप नहीं होता, जबकि const मानों का होता है।