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.


Anmelden zum Antworten