Ich habe ein Problem mit Xcode, das nur auf Xcode erscheint. Es erscheint nicht in VisualStudio und auch nicht beim Kompilieren über die Konsole (unter OS X).Fehler wie "Widersprüchliche Typen für 'move'" bei Verwendung von Xcode
folgende Fehler auftreten:
Widersprüchliche Typen für 'move' (Linie 4)
Implizite Deklaration der Funktion 'Bewegung' ist ungültig in C99 (Linie 20)
Zu viele Argumente zum Funktionsaufruf, erwartet 2, haben 4 (Zeile 20)
Konfliktarten für 'bewegen' (Zeile 42)
Hier ist der Code:
#include<stdio.h>
void printField(int *field);
void move(int *field, int *posX, int *posY, char zug); //line 4
int main() {
int field[8][8] = { 0 }, posX=0, posY=0;
char zug;
// setzen der Spielfigur
field[posY][posX] = 1;
printf("\nBeenden mit x\n");
do {
printField(&field[0][0]);
printf("\nZug [w hoch, a links, s runter, d rechts]: ");
scanf("%c", &zug);
move(&field[0][0], &posX, &posY, zug); //line 20
}while(zug != 'x');
return 0;
}
// Ausgabe Spielfeld
void printField(int *field) {
printf("\n");
int i, j;
// Schleife fuer Zeilen, Y-Achse
for(i=0; i<8; i++) {
// Schleife fuer Spalten, X-Achse
for(j=0; j<8; j++) {
printf("%d ", *(field+i*8+j));
}
printf("\n");
}
}
// Spielfigur bewegen
void move(int *field, int *posX, int *posY, char zug) { //line 42
// alte Position loeschen
*(field + *posY * 8 + *posX) = 0;
// neue Position bestimmen
switch(zug) {
case 'w': (*posY)--; break;
case 'a': (*posX)--; break;
case 's': (*posY)++; break;
case 'd': (*posX)++; break;
}
// Grenzueberschreitung pruefen
if(*posX < 0) *posX = 7;
if(*posX > 7) *posX = 0;
if(*posY < 0) *posY = 7;
if(*posY > 7) *posY = 0;
// neue Position setzen
*(field + *posY * 8 + *posX) = 1;
}
Der Compiler sagt Ihnen sicherlich Zeilennummern mit den Fehlermeldungen, oder? – alk
Zeile 4: Widersprüchliche Typen für ‚move‘ Zeile 20: Implizite Deklaration der Funktion ‚Bewegung‘ ist ungültig in C99 Zeile 20: Zu viele Argumente Aufruf funktionieren, erwartet 2, haben 4 Linie 42: Widersprüchliche Typen für 'bewegen' – Eduard
Danke! Und jetzt werden Sie mit Sicherheit den Code kommentieren, um uns zu sagen, welche Zeilen 4, 20 und 42 sind? – alk