G
TactX schrieb:
Bitte nicht steinigen
Was anderes würde mir dazu aber nicht einfallen.
Master User schrieb:
Wie trenne ich eine Funktion damit ich ein teil in einer header Datei schreiben kann und ein anderen teil in eine .c Datei?
Was meinst du mit 'trennen'?
Master User schrieb:
Wieso funktioniert das nicht? Also wie rufe ich eine andere funktion auf?. Die auch ein makro ist? ICh bekomme bei jeder if schleife ein fehler!
Schon wieder die berühmte if Schleife.
Zudem wird sowas
printf("!!!Fatal Erroe!!! __FILE__ 000 000. O pinakas einai adios.\n");
nicht wie erwartet funktionieren. Makros (in diesem Fall __FILE__) werden innerhalb von String Literalen nicht aufgelöst. Eventuell hilft dir auch hier ##, zB
printf("!!!Fatal Erroe!!! "##__FILE__##" 000 000. O pinakas einai adios.\n");
Ich bin mir aber nicht sicher ob das funktioniert. Da musst du dir mal anschaun, wie diese 'Makros' vom Standard definiert werden, bzw ob es richtige Makros sind.
Zum Problem, nehmen wir mal folgendes if Konstrukt
if(ArrayEmpty(Array))\
{\
printf("!!!Fatal Erroe!!! __FILE__ 000 000. O pinakas einai adios.\n");\
exit(EXIT_FAILURE);\
}\
ArrayEmpty gibt es nicht. Hier
DEFINE_ARRAYEMPTY(double **, _double);
DEFINE_ARRAYEMPTY(int **, _int);
hast du ja ArrayEmpty_double und ArrayEmpty_int definiert. Womöglich hilft dir aber folgendes
if(ArrayEmpty##unique(Array))\
{\
printf("!!!Fatal Erroe!!! __FILE__ 000 000. O pinakas einai adios.\n");\
exit(EXIT_FAILURE);\
}\
(es heisst übrigens unique und nicht unigue)
Ausserdem bin ich mir nicht sicher, ob du wirklich so einfach Kommentare innerhalb von solchen Makrodefinitionen einfügen kannst.
Master User schrieb:
wieso bekomme ich anstatt bool zum Beispiel ein int zurück?
int __cdecl TEqualunique(int ,int )
Weil TEqualunique nunmal int zurückgibt. Willst du bool, dann sollte die Funktion so aussehen
bool TEqualunique(int, int)
(und stdbool.h nicht vergessen)
Master User schrieb:
Man dieses Makro zeug ist echt cool!.
Nicht wirklich. Es ist schwer zu warten, noch schwerer zu debuggen und nichts im Vergleich zu 'echten' C++ Templates. Natürlich haben auch Makros Vorteile, aber für sowas sind sie einfach zu beschränkt.