Я хочу створити постійний статичний масив, який буде використовуватись у всьому моєму файлі реалізації 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
у змінну, щоб у мене не було однакових літералів, розкиданих по різних місцях у моєму файлі
Будь-які пропозиції?
[РЕДАКТУВАТИ] Це знайдено у C Faq: http://c-faq.com/ansi/constasconst.html
#define kNUM_TYPES 4
?