Литеральные константы C :в заголовке или файле C?

Я хотел бы включить в единственную статическую программу на C набор данных (, скажем, изображений, а также другие данные, встроенные в исполняемый файл, поскольку я работаю над встроенной платформой без файлов ).

Таким образом, я написал небольшой img2c, создающий константные данные из моих файлов данных, создав файл с инициализаторами статических константных массивов, которые будут помещены во флэш-память (, используя приятные функции C99 )

. Мой вопрос в том, должен ли я поместить их в файл.h, как я видел много раз -, например, gimp может сохранять как файлы.h, а не файлы.c -или в файле.c, на который есть ссылка в заголовок только с объявлением const extern для дальнейших ссылок, без необходимости включать все данные и передавать их все компилятору, а также повторно объявлять его каждый раз, когда я его использую?

О макросах препроцессора не может быть и речи, так как я буду ссылаться на их адрес, а не включать все данные каждый раз.

6
задан makapuf 9 August 2012 в 12:59
поделиться