我正在读《C-Primer Plus》这本书。以下是我想更好理解的文字 -
文件 - 常量.h
/* constant.h -- defines some global constants */
static const double PI = 3.14159;
static const char * MONTHS[12] =
{"January", "February", "March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"};
文件-file1.c
/* file1.c -- use global constants defined elsewhere
#include "constant.h"
文件-file2.c
/* file2.c -- use global constants defined elsewhere
#include "constant.h"
如果您不使用关键字static
,包括file1.c和file2.c中的constant.h将导致每个文件都有相同标识符的定义声明,这是 C 标准不支持的。通过使每个标识符静态外部,您实际上为每个文件提供了数据的单独副本。
有人可以向我解释上述内容,以便我更好地理解吗?