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