Рассмотрим эти два случая заголовка C ++:
Дело 1:
class Test {
public:
static int TEST_DATA[];
};
int Test::TEST_DATA[] = { 1, 2, 3, 4 };
Случай 2:
class Test {
public:
static int const TEST_DATA[];
};
int const Test::TEST_DATA[] = { 1, 2, 3, 4 };
Является ли const в последнем случае только для добровольных проверок во время компиляции или это влияет на макет совместно используемой библиотеки в Mac / Linux / Windows?
Обновление: Согласно ответам, компилятор может поместить const-содержимое на страницу только для чтения. Имеет ли Visual C ++ в Windows или GCC
на Mac или Linux на самом деле размещать данные const на странице только для чтения? Возможно, я тестировал неправильно, но на Mac на Intel элементы const версии казались доступными для записи.