在C中的以下陈述中哪一个更好用?
static const int var = 5;
Run Code Online (Sandbox Code Playgroud)
要么
#define var 5
Run Code Online (Sandbox Code Playgroud)
要么
enum { var = 5 };
Run Code Online (Sandbox Code Playgroud) 当重构一些时,#defines我遇到了类似于C++头文件中的以下声明:
static const unsigned int VAL = 42;
const unsigned int ANOTHER_VAL = 37;
Run Code Online (Sandbox Code Playgroud)
问题是,静态会产生什么不同,如果有的话?请注意,由于经典#ifndef HEADER #define HEADER #endif技巧(如果重要),不可能多次包含标题.
VAL如果标题包含在多个源文件中,静态是否只创建了一个副本?