Суть:
Имеем кучу дефайнов, вида:
#define a 0x01
#define b 0x05
#define c 0x0A
Когда их мало, не так страшно. А вот много - уже не запомнить.
Но если пойти таким путем:
struct {
unsigned char a; /* help */
unsigned char b;
unsigned char c;
} uuu = {0x01,0x05,0x0A}
то далее можно использовать в программе uuu.a, причем, установка точки после uuu вызывает список всех элементов, со справкой (ежели справка есть). Удобно. Очень. Но совершенно расточительно по ресурсам, ибо вся структура сохраняется как константы, и дальнейшее ее использование - вызов.
Enum тоже позволяет после точки вызвать список всех элементов:
typedef enum {
a = 0x01,
b = 0x05,
c = 0x0A
} uuu;
но использование в дальнейшем uuu.a среда позволяет, а компилятор - нет.
Вот и вопрос: возможно ли в MPLAB X XC8 что такое сделать, что совместит удобство разработки как со структурами (то есть вызов точкой списка элементов) с функционалом дефайнов (то есть с подстановкой значений)?
нашел небольшое решение: структуру объявить константой. В этом случае код становится несколько меньше, озу не тратится.