Ich versuche, einige einfache generische Strukturen in C mit Token-Einfügen zu definieren. Ein Beispiel davon ist unten: -Token pasting für generische Struktur
#define VECTOR(type, dimension, name) \
typedef struct Vector_##type{ \
type data[##dimension##]; \
int dim = dimension; \
}##name##;
VECTOR(int, 3, Vector3i)
Zu meinem Verständnis des Token-Einfügen ist notwendig, auf den Linien 2 und 5 aufgrund der Einbettung der Paramater, und ist auf der Linie 4 für den entgegengesetzten Grund nicht erforderlich.
Allerdings erscheine ich etwas in meinem Verständnis als einfaches Beispiel zu fehlen oben verursacht die folgenden Fehler: -
pasting formed '[3', an invalid preprocessing token VECTOR(int, 3, Vector3i)
pasting formed '3]', an invalid preprocessing token VECTOR(int, 3, Vector3i)
expected member name or ';' after declaration specifiers
VECTOR(int, 3, Vector3i)
~~~~~~~~~~~~^~~~~~~~~~~~
die obigen Fehler gegeben, was habe ich verpasst, und was ist der richtige Weg Generika zu definieren Strukturen in reinem C?
'int dim = dim;' wird nicht funktionieren. –
Das habe ich auch nach meiner Veröffentlichung gemerkt. Bearbeitet. –