2012-08-25 11 views
5

संभव डुप्लिकेट:
“static const” vs “#define” in c#define MY_INT वी.एस. स्थिरांक पूर्णांक MY_INT

जब मैं ऐसा करते हैं:

#define WEEKDAYS 7 

और कहा कि:

const int WEEKDAYS = 7; 

उनके बीच कोई अंतर? ऐसा लगता है कि दोनों एक ही काम करते हैं - कोड के भीतर भविष्य के उपयोग के लिए निरंतर मूल्य निर्धारित करता है।

+2

आपने इसे सी और सी ++ दोनों के रूप में टैग किया है। उत्तर अलग-अलग भाषाओं के लिए कुछ अलग हैं। – hvd

+0

यह कहना आसान होगा ** कभी नहीं ** सी और सी ++ दोनों प्रश्नों को टैग करें। –

+0

@JeffMercado यह आसान होगा, लेकिन यह गलत होगा। :) सबसे आसान उदाहरण विशेष रूप से सी और सी ++ के बीच मतभेदों में से एक के बारे में पूछने वाला एक प्रश्न है (मुझे हाल ही में एक सवाल है कि क्यों 'आकार (' ए ') 'सी में आकार (char)' से अलग है, लेकिन सी ++ में नहीं है) – hvd

उत्तर

6
#define WEEKDAYS 7 

void f() { 
    int WEEKDAYS = 3; // error 
} 

const int WEEKDAYS_CONST = 7; 

void g() { 
    int WEEKDAYS_CONST = 3; // okay: local scope for WEEKDAYS_CONST 
} 
2
#define WEEKDAYS 7 

अंकों 7.

const int WEEKDAYS = 7; 

को परिभाषित करता है एक वास्तविक 7 का प्रतिनिधित्व करती निरंतर है कि आप अपने कोड में उपयोग कर सकते हैं के साथ अपने स्रोत फ़ाइल में शब्द WEEKDAYS के सभी घटना से बदलता है।