C Template Alternative
-
Hi!
Zwei knappe Fragen an euch:
Welchen Alternativen hat man als C-Programmierer gegenüber den C++ Template-Funktionen, insbesondere ohne die Nachteile(Code-bloat)?
Seit welchem Standard gehört
inline
zum C-Standard? Kam es von C++ zu C oder war es zeitgleich?
Danke!
-
inline gehört zum C99 Standard.
Und als Alternative zu templates kannst dú #defines benutzen, z.B.
#define DECLARE_ARRAY(NAME, TYPE) \ typedef struct \ { \ unsigned int count, size; \ TYPE *data; \ } NAME; \ \ void NAME##_create(NAME *array); \ void NAME##_delete(NAME *array); \ void NAME##_add(NAME *array, TYPE entry); \ void NAME##_remove(NAME *array, int pos); \ void NAME##_clear(NAME *array); \ int NAME##_find(NAME *array, TYPE entry);
-
irgendwie wird mir gerade schlecht
-
Warum
Wenn man verschiedene Arrays benötigt, kann man z.B.
DECLARE_ARRAY(int_array, int)
DECLARE_ARRAY(char_array, char)
DECLARE_ARRAY(blah_array, struct blah)machen und muss nicht zu jedem Array die einzelnen Funktionen schreiben. Natürlich ist das mehr oder weniger Missbrauch des Preprozessors, aber wenn sowas der Übersichtlichkeit dient *kann* man sowas benutzen.