#define MY_INT VS const int MY_INT

JAN*_*JAN 5 c++ const c-preprocessor

可能重复:
c中的"static const"vs"#define"

当我这样做:

#define WEEKDAYS 7
Run Code Online (Sandbox Code Playgroud)

然后 :

const int WEEKDAYS = 7;
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别?似乎两者都做同样的事情 - 为代码中的未来使用设置一个恒定值.

Pet*_*ker 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
}
Run Code Online (Sandbox Code Playgroud)