MaDa: det du försöker ät att skapa en array över pekare till en samling bytes.
Vid att deklarera dom som "static" kan inget annan modul i projektet se dom.
Vid att inte deklarera dom som "const" läggs de i RAM-minnet.
Som det borde se ut:
Kod: Markera allt
const static uint8_t C_PINK[] = { 255, 20, 147, 0 };
const static uint8_t C_VIOLET[] = { 192, 0, 255, 0 };
const static uint8_t C_MAGENTA[] = { 255, 0, 255, 0 };
// colors
const uint8_t* COLORS[] = {
C_PINK, C_VIOLET, C_MAGENTA
};
Sedan återstår en förklaring på vad "Detta kraschar tyvärr" betyder.
Sedan är det sätt lite fel faktisk! Du borde skapa en grupp först:
Kod: Markera allt
typedef struct
{
uint8_t Red, Green, Blue, Intensity;
} T_COLOR_DEF;
Sedan deklarera de värden som resten av programmet inte ska kunde se:
const static T_COLOR_DEF C_PINK = { 255, 20, 147, 0 };
const static T_COLOR_DEF C_VIOLET = { 192, 0, 255, 0 };
const static T_COLOR_DEF C_MAGENTA = { 255, 0, 255, 0 };
// Och sedan deklarera de globala Colors
const T_COLOR_DEF* COLORS[] = {
C_PINK, C_VIOLET, C_MAGENTA
};
Då kan du enkelt komma åt COLORS[x]->Red, COLORS[x]->Green och COLORS[x]->Blue samt COLORS[x]->Intensity om du behöver.