Mit tesz egy header file

Amikor beszélek C programozó a hardver interfészek vagy programozás szabványos, gyakran látni, hogy nem rendelkeznek a szükséges készségek és információk a programozási nyelv. Általában azért, mert mindannyian alapvetően elektronikus mérnökök, akik tanulmányozták a C (vagy más nyelv) egyedül.

Az egyik ilyen képességek utal létrehozását header fájlokat. Mit kell (vagy nem kellene) kell helyezni fejállománnyal .h C? Amikor arra van szükség, hogy megteremtse a header fájlt? És miért?

Az ezekre a kérdésekre, van egy lista a válaszokat.

Készítsen egy .h header fájlt minden egyes „modul” rendszer. A modul tartalmazhat egy vagy több összeállított fájlok (pl. With or .asm), de fel kell ismerniük, csak az egyik aspektusa a rendszer. Ily módon jól kiválasztott modulok: ADC driver; kommunikációs protokoll, mint az FTP; Balesetek vezetője, aki vezeti a hiba napló, és figyelmezteti a felhasználót, a szállítás.

Fejléc .h fájlban minden prototípusai funkciók teszik ki a külső interfész modult. Például a fejléc fájl tartalmazhat adc.h prototípusok adc_init funkciók (), adc_select_input (), adc_read ().

Nem tartalmazzák a header file funkciók és makrók használatra szánt a modulon belül. Célszerű elrejteni ezeket a hazai „segítők”, ha nem használják más modulokat. (Ha a modult összeállított több fájlt, hogy használja a belső funkciókat, majd hozzon létre egy külön header fájlt erre a célra.) A modul kell kiváltania B modul csak nyílt interfész a fejlécben megadott fájlt moduleb.h

Ne helyezze a header fájlban változó, mivel túl gyakran történik a kulcsszó extern. Korrigálja a tokozás modulnak szüksége van elrejtve minden hazai adatok belül C forrás fájlokat. Ha lehetséges, a belső változókat kell nyilvánítani a kulcsszó statikus, annak érdekében, hogy korlátozzák azok hatályát kívül a modul.

Ne árulja belső méret specifikus adatszerkezetek által használt interfész modul funkcióit. Más szóval, a header fájlban nem lehet structfoo. Ha az adatok típusát, amelyet továbbítani kell, vagy a modul határozza meg a adattípusok a fejléc fájlt typedef. Például, mivel a "typedef struct ize moduleb_type". Client modulok nem kell tudni, hogy a belső szerkezete a formátumot.

Bár ezek a tippek nem specifikus beágyazott szoftver. Remélem, hasznos lesz az Ön számára.