C: co ma byt v hlavickovych suboroch?
Jan Waclawek
konfera na efton.sk
Středa Září 27 17:17:10 CEST 2023
[preposielam]
Ahojte,
ta prva veta je pre mna najdolezitejsia. Kedze tabulka zabera miesto vo
FLASH, patri do .c-suboru.
Inak cely problem vyriesil kompilator C, ktory pri definicii teda
deklaracii tabulky smernikov na funkcie (tabulka funkcii) generoval
warning. Preto som ju musel dat do .c-suboru za
definicie jednotlivych funkcii. Vsade inde mi to generovalo warningy. Tym
sa vsetko vyriesilo a do .h-suboru si dam len zakomentovanu definiciu
tabulky kvoli jasnosti kodu. Velmi pekne dakujem vstkym za objasnenie
problematiky.
A.
>>>
V hlavickovych suboroch nema byt nic, co zabera miesto v pamati. Zostanu
teda veci ako #define, dalej typedef a enum, dalej extern premenne, dalej
"hlavicky" funkcii (okrem toho #define su to vsetko deklaracie, t.j. nie
definicie premennych a funkcii).
Takze ak mas tabulku so smernikmi na funkcie, tak ak ju nepotrebujes
zdielat do ineho .c, tak ju do .h nedavas. Inak v .h ma byt len
deklaracia, t.j. v x.h bude:
typedef int (*fnc_ptr)(int, int);
extern fnc_ptr tabulka_funkcii[4];
Další informace o konferenci Hw-list