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".


Anmelden zum Antworten