Я читаю книгу C -Праймер Плюс. Ниже приведен текст, который я хотел бы лучше понять -
file - constant.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"};
file - file1. c
/* file1.c -- use global constants defined elsewhere
#include "constant.h"
файл - файл2. c
/* file2.c -- use global constants defined elsewhere
#include "constant.h"
Если вы не используете ключевое слово static
, включая константу .h в file1. c и в file2. c приведет к тому, что каждый файл будет иметь определяющее объявление того же идентификатора, который не поддерживается C стандарт. Делая каждый идентификатор stati c external, вы фактически предоставляете каждому файлу отдельную копию данных.
Может кто-нибудь объяснить мне вышеизложенное, чтобы я мог лучше понять это?