Re: C, pekare i struct
Postat: 13 september 2016, 21:10:32
Precis. 

Svenskt forum för elektroniksnack.
https://elektronikforumet.com/forum/
Kod: Markera allt
typedef uInt8 OevTabellTyp[][2]; /* en array med x rader och 2 kolumner*/
typedef OevTabellTyp* OevTa[Code=c file=Untitled.txt]
Kod: Markera allt
typedef struct {
uInt8 fraan, till;
} OevParTyp;
typedef OevParTyp* OevParPekTyp;
typedef struct {// med inställningsvärden för display
uint8 AntalKol;
uint8 AntalRad;
uint8 TABlaengd;
OevParPekTyp OevTabellPek;
} LCDinstTyp;
typedef LCDinstTyp* LCDinstPekTyp;
// Och definiera storleken så att kompilatorn kan kolla att den är rätt överallt där den används
#define OEV_TABELL_WIN_LAENGD 1
// Och ha för vana att använda const för mer kompilatorkoll
// Och använd const static där det går för att det kan leda till mer effektiv minnesanvändning
// Att skriva tecken utanför ASCII som char-literaler är ofta beroende av vilken teckenuppsättning kompilatorn använder.. så det är ofta lite vanskligt
const static OevParTyp OevTabellWin[OEV_TABELL_WIN_LAENGD] = {
{ 'å', 0 }
/* ... */
};
const static LCDinstTyp LCD_16x1 = {
16,
2,
OEV_TABELL_WIN_LAENGD,
OevTabellWin
};
const LCDinstPekTyp LCDPek;
LCDPek = &LCD_16x1;
Kod: Markera allt
const static LCDinstTyp LCD_16x1 = {
.AntalKol = 16,
.AntalRad = 2,
.TABlaengd = OEV_TABELL_WIN_LAENGD,
.OevTabellPek = OevTabellWin
};