Я хочу создать постоянный статический массив, который будет использоваться во всем моем файле реализации Objective-C, похожий на что-то вроде этого на верхнем уровне моего файла ".m":
static const int NUM_TYPES = 4;
static int types[NUM_TYPES] = {
1,
2,
3,
4 };
Я планирую использовать NUM_TYPES
позже в файле, поэтому я хотел поместить его в переменную.
Однако когда я это делаю, я получаю сообщение об ошибке
"Изменяемые" типы "в области файлов"
Я так понимаю, что это может иметь какое-то отношение к тому, что размер массива является переменной (я не получаю это сообщение, когда помещаю туда целочисленный литерал, например static int types[4]
).
Я хочу исправить это, но, возможно, я все делаю неправильно ... У меня здесь 2 цели:
- Чтобы иметь массив, доступный во всем файле
- Чтобы инкапсулировать
NUM_TYPES
в переменную, чтобы у меня не было одного и того же литерала, разбросанного в разных местах в моем файле
Какие-либо предложения?
[EDIT] Нашел это в C Faq: http://c-faq.com/ansi/constasconst.html
#define kNUM_TYPES 4
?