2012-08-25 25 views
5

Olası Çoğalt:
“static const” vs “#define” in c#define MY_INT VS #define MY_INT

yapmam bu:

#define WEEKDAYS 7 

ve bu:

const int WEEKDAYS = 7; 

Aralarında herhangi bir fark var mı? Her ikisi de aynı şeyi yapar gibi görünüyor - kod içinde gelecekteki kullanım için sabit bir değer ayarlar.

+2

Bunu hem C hem de C++ olarak etiketlediniz. Cevaplar farklı diller için biraz farklı. – hvd

+0

Söylemek daha kolay olurdu ** ASLA ** C ve C++ bir soru. –

+0

@JeffMercado Daha kolay olurdu, ama yanlış olur. :) En basit örnek, C ve C++ arasındaki farklardan birini özellikle sormaktır. ('' ('A') 'nin neden c' deki (char) 'dan farklı olarak C++ 'dan farklı olduğunu soran yeni bir soruyu hatırlıyorum. – hvd

cevap

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; 

kodunuzda erişebilirsiniz 7 ile temsil gerçek sabitini tanımlar rakam ile kaynak dosyadaki kelimenin WEEKDAYS tüm oluşumunu değiştirir.

İlgili konular