Bin zu dumm für Funktionsaufruf



  • Moin Moin,
    ich hab een ein kleine Progrämmchen geschrieben das mir die umrechnung vn ein paar Celsus Werten in Farenheit umrechnet. Damit das alles auch schön untereinander steht, hab ich eine kleine Funktion/Methode die mir bei kleinen Zahlen "Spaces" hinzufügt.

    Der Compiler von Visual Studio 6 meldet mir
    1. warning C4013: 'addSpaces' undefiniert; Annahme: extern mit Rueckgabetyp int
    2.'addSpaces' : Neudefinition; unterschiedliche Basistypen

    Zu 1. Wieso ist addSpaces undefiniert. Es soll doch ganz klar vom Typ Void sein. Ohne Rückgabewert.

    Zu 2. Mit der Methode haben doch nur Integer Werte zu tun. Wo sollen da bitte unterschiedliche Basistypen sein.

    #include <stdio.h>
    
    void main() {
    
        int c; //Celsius Wert
        double f; //Farenheit Wert
    
        printf("-------------------------------------------------------------------\n");
        printf("         Umrechnungstabelle von Celsius in Farenheit");
    
        for (c=-20; c <= 120; c=c+10) {
            f = 9.0 / 5.0 * c + 32;
            printf("\nC = %i     ", c);
    
        addSpaces(c);
    
            printf("F = %lf", f);
    
        }
        printf("\n-------------------------------------------------------------------\n");
    
    }
    
    void addSpaces(int wert) {
        if ((wert < 10) & (wert >= 0)) {
            printf(" ");
        }
    
        if ((wert < 100) & (wert >= 0)) {
            printf(" ");
        }
    }
    

    Hoffe jemand kann mir helfen. Bin da als Java-Mensch voll überfordert.



  • du brauchst eine funktionsdeklaration überhalb der main. sonst kennt er den bezeichner nicht.



  • Du musst bei C++ eine Vorwärtsdeklaration hinzufügen, oder die komplette Funktion vor die Main Funktion packen:

    void addSpaces(int); // Das hier vor main packen...
    


  • Ach Scheisse. Bei Java ist es ja egal wo die funktion steht. Da bin ich aber reingefallen.

    Danke! Ihr seid Spitze!!!!!!!!! 👍 👍 👍


Anmelden zum Antworten