глобальные константы без использования #define

Хорошо, я хочу определить набор адресов памяти как константы в файле.h, который используется кучей файлов.c (мы работаем на C, а не на C++). Я хочу иметь возможность видеть имя переменной, а не просто видеть шестнадцатеричный адрес в отладчике... поэтому я хочу преобразовать #определения, которые у меня есть в настоящее время, в константы, которые являются глобальными в сфера. Проблема в том, что если я определяю их так :

const short int SOME_ADDRESS  =  0x0010

, я получаю ужасную ошибку «несколько объявлений», поскольку у меня есть несколько файлов.c, использующих один и тот же.h. Я хотел бы использовать перечисление, но это не сработает, так как по умолчанию используется целочисленный тип (, который в моей системе составляет 16 бит... и мне нужно иметь более точный контроль над типом ).

Я думал о том, чтобы поместить все адреса в структуру... но у меня нет (известного мне способа)установить значения по умолчанию для экземпляра структуры в заголовочном файле (I не хочу предполагать, что конкретный файл.c сначала использует структуру и заполняет ее где-то еще. Я действительно хотел бы, чтобы константы были определены в файле.h )

. не вижу хорошего способа определения глобально доступной короткой константы int в заголовочном файле... кто-нибудь знает способ сделать это?

спасибо!

13
задан hmjd 12 March 2012 в 14:03
поделиться