Подтвердить что ты не робот

Объявлять и инициализировать константу в файле заголовка

Я хорошо разбираюсь в типичной парадигме:

//.h
extern const int myInt;

//.c, .m, .cpp, what have you
const int myInt = 55;

Но должен быть способ поместить это в файлы .h для использования с библиотеками или другими экземплярами, где вы не можете получить доступ к файлу реализации.

Например, я пытаюсь добавить константу NSString в файл .h в проекте Xcode следующим образом:

static NSString *const myString = @"my_string";

однако, когда я пытаюсь использовать myString, я получаю ошибку

Элемент инициализатора не является константой времени компиляции

on myString, указывая на то, что он не создается должным образом. Как объявить константы времени компиляции в заголовочном файле С++ или Objecitve-C?

4b9b3361

Ответ 1

В С++ объекты const имеют внутреннюю связь, если явно не объявлено extern, поэтому нет проблем с помещением определения в заголовочный файл, например:

const int myInt = 55;

С этим определением и первым объявлением myInt может использоваться как целочисленное постоянное выражение, такое как для границ массива и т.п.

Я не могу ответить за Objective C.