C++ में डिक्लेरेशन और डेफिनिशन अक्सर भ्रमित होते हैं। डिक्लेरेशन का अर्थ है (C में) कि आप कंपाइलर को किसी वेरिएबल, या यूजर-डिफाइंड टाइप या फंक्शन के टाइप, साइज और फंक्शन डिक्लेरेशन के मामले में उसके पैरामीटर्स के टाइप और साइज के बारे में बता रहे हैं। डिक्लेरेशन के मामले में किसी भी वेरिएबल के लिए मेमोरी में कोई स्थान आरक्षित नहीं होता।
दूसरी ओर डेफिनिशन का अर्थ है कि डिक्लेरेशन जो करता है उसके अलावा, मेमोरी में अतिरिक्त स्थान आरक्षित होता है। आप कह सकते हैं "डेफिनिशन = डिक्लेरेशन + स्पेस रिज़र्वेशन"।
डिक्लेरेशन के उदाहरण निम्न हैं –
extern int a; // वेरिएबल a को बिना डिफाइन किए घोषित करना
struct _tagExample { int a; int b; }; // स्ट्रक्चर घोषित करना
int myFunc (int a, int b); // फंक्शन घोषित करना
जबकि डेफिनिशन के उदाहरण निम्न हैं –
int a;
int b = 0;
int myFunc (int a, int b) { return a + b; }
struct _tagExample example;