Am lucrat la mai multe sisteme încorporate diferite. Ei au folosit typedef
s (sau #defines
) pentru tipuri precum UINT32
.
Aceasta este o tehnică bună pe măsură ce acționează acasă dimensiunea tipului la programator și vă face mai conștienți de șansele de supraîncălzire etc.
Dar pe unele sisteme știi că compilatorul și procesorul nu se vor schimba pe durata proiectului.
Deci, ce ar trebui să influențeze decizia dvs. de a crea și de a impune anumite tipuri de proiecte?
EDITAȚI | ×
Cred că am reușit să pierd ideea întrebării mele și poate că sunt cu adevărat două.
Cu programare încorporată, este posibil să aveți nevoie de tipuri de dimensiuni specifice pentru interfețe și de a face față și resurselor restricționate, cum ar fi RAM. Acest lucru nu poate fi evitat, dar puteți alege să utilizați tipurile de bază din compilator.
Pentru orice altceva, tipurile au o importanță mai mică
Trebuie să aveți grijă să nu provoacă prea mult și este posibil să aveți grijă să folosiți înregistrarea și utilizarea stivei. Care vă poate conduce la UINT16
, UCHAR
.
Folosind tipuri precum UCHAR
se poate adăuga, totuși, "fluff" de compilator. Deoarece registrele sunt de obicei mai mari, unii compilatori pot adăuga un cod pentru a forța rezultatul în tip
i++;
can become
ADD REG,1
AND REG, 0xFF
which is unecessary.
Deci, cred că întrebarea mea ar fi trebuit să fie:
având în vedere constrângerile software-ului încorporat, care este cea mai bună politică de setare pentru un proiect care va avea mulți oameni care lucrează la acesta - nu toți vor avea același nivel de experiență.