Fehler im Quellcode
-
Leute hilft mir bitte, der Compiler sagt habe syntaktische Fehler
in Zeile 10 (int min (int x, int y))#include <stdio.h>
#define min(i, j) (((i) < (j)) ? (i) : (j))
template <class T> T max (T x, T y) {
return (x > y) ? x : y;
};int min (int x, int y) {
printf("\n - in min - x = %d, y = %d\n", x, y);
return (x < y) ? x : y;
};template <class T> void tausche (T& x, T& y) {
T temp(x);
printf("\n - im Tauscher - \n");
x = y;
y = temp;
};int main(int argc, char *argv[]) {
int i = 17, j;
j = max(i, 0);
printf("max(i, 0) = %d, min(i, 0) = %d\n", j, min(i, 0));
i = 2;
printf("\ni = %d, j = %d\n", i, j);
printf("\ni und j tauschen\n");
tausche(i, j);
printf("\ni = %d, j = %d\n", i, j);char *s = "Hugo", *t = "Marlies";
printf("max(s, t) = %s\n", max(s, t));
getchar(); return 0;
}
-
namensgleichheit: zweimal min
#define min(i, j) (((i) < (j)) ? (i) : (j)) int min (int x, int y) { printf("\n - in min - x = %d, y = %d\n", x, y); return (x < y) ? x : y; };
einmal im globalen bereich, einmal als definition.. geht nicht. nenn die methode um.
-
MANN DAS IST C++ UND GEHOERT INS C++ FORUUUMMM!!!!!
-
elise schrieb:
namensgleichheit: zweimal min
#define min(i, j) (((i) < (j)) ? (i) : (j)) int min (int x, int y) { printf("\n - in min - x = %d, y = %d\n", x, y); return (x < y) ? x : y; };
einmal im globalen bereich, einmal als definition.. geht nicht.
Geht schon, nur expandiert der Präprozessor das 2. min zu Folgendem
int (((int x) < (int y)) ? (int x) : (int y))
was syntaktisch, wie schon gesagt, nicht korrekt ist.
-
@groovemaster
stimmt, der präprozessor arbeitet ja vorher..thanks für berichtigung.. schöne sache
-
--linuxuser-- schrieb:
MANN DAS IST C++ UND GEHOERT INS C++ FORUUUMMM!!!!!
Dein Rumgebrülle und deine Art das mitzuteilen nerven mehr als das eigentliche "Problem".