Kleines OT:
Wir haben 2016, bald 2017. Es gibt seit 6 Jahren C11 bzw. C+11, seit ~3 Jahren ist es benutzbar.
Es gibt seit fast 18 Jahren
C99. C89 ist schwieriger zu optimieren (register loops), schlechter zu lesen (Variablen vor Kilometern an Quellcode definiert, wirre Casts) und hat keinen einzigen Vorteil gegenüber C99 (ausser für Masochisten). Ganz ehrlich: Hätte ich die Wahl zwischen C89 und Assembly, würde ich Assembly nehmen...
</rant>
*Seufz*
Hilft ja alles nichts.
Also: Alle Kommentare (//...) solltest du durch Zeilenkommentare (/*...*/) ersetzen.
Zum Makro strcpy: Ich habe keinen Schimmer, wie IBM das implementiert. (strcpy ist eigentlich eine Funktion, kein Makro). Was sagt denn deine IDE, was die Definition des Makros ist?
Ausser, dein System ist nicht POSIX-Compliant, aber dann haben wir eh ein ganz anderes Problem...
Du hast aber scheinbar schon die Loops umstrukturiert. Allerdings stimmen jetzt die Zeilennummern auch nicht mehr...
Wie sieht denn den Code momentan aus?
(Sorry, dass sich das so hinzieht
)
Gruss
cwriter
/EDIT: Beschwert sich der Compiler nicht bei meinen Funktionen?
Eigentlich müssten die nach C89 so aufgebaut sein (Das wäre der älteste Standard. Ganz so schlimm ist es dann doch nicht
):
char * strcpy (String1, String2) char *String1; const char *String2;
-> Entweder ist das nicht C89 oder IBM hält nicht allzuviel vom Standard.
Oder hast du das schon korrigiert?
-> Es ist C89
/EDIT2: Bei strcpy scheinst du strcpy_s(a, b, c) zu strcpy(a, b) statt strcpy(a, c) geändert zu haben. Das ist ein Grund für ein paar Fehler im Code.