2013-11-09 7 views
8

Ich habe ein Problem. Ich benutze Visual Studio 2013 und erhalte den folgenden Fehler:Fehler C2371: 'Funktionsname' Neudefinition: verschiedene Grundtypen

Error C2371: 'getgrundflaeche' redefinition: different basic types. 

Ich weiß nicht, warum ich diesen Fehler bekomme. Ich bekomme den gleichen Fehler mit VS12, wenn ich versuche, die Funktion getgrundflaeche() aufzurufen. Hier

ist der Code:

#include <stdio.h> 
#define PI 3.14159265359 

int main(void){ 
    double h = 0, d = 0, r = 0, G = 0, V = 0, M = 0, O = 0; 

    printf("Geometrie Zylinder:\nBitte geben sie den Durchmesser d ein (cm): "); 
    scanf_s("%lf", &d); 
    printf("Bitte geben sie die Höhe h ein (cm): "); 
    scanf_s("%lf", &h); 
    r = d/2; 

    G = getgrundflaeche(r); 
    /*V = get_volumen(r, h); 
    M = get_mantelflaeche(d, h); 
    O = get_oberflaeche(M, G); */ 

    system("CLS"); 

    printf("Eingaben:\nDurchmesser d: %lf cm\nHöhe h: %lf cm", d, h); 
    system("PAUSE"); 

    return 0; 
} 

double getgrundflaeche(double r){ 
    return (r*r); 
} 
/* 
double get_volumen(double r, double h){ 
return r*r*h*PI; 
} 

double get_mantelflaeche(double d, double h){ 
return d*h*PI; 
} 

double get_oberflaeche(double M, double G){ 
return M+2*G; 
}*/ 
+0

Duplizieren von [das Verhalten eines C-Compiler mit alten Stil Funktionen ohne Prototypen] (http://stackoverflow.com/questions/2287164/the -Behavior-of-ac-Compiler mit altmodischen Funktionen ohne Prototypen –

Antwort

16

Sie erklärten nie getgrundflaeche, bevor sie anrufen. Der Compiler geht davon aus, dass nicht deklarierte Funktionen int zurückgeben. Die spätere Funktionsdefinition ist natürlich anders.

dieses Lösen Sie eine Erklärung vor main() durch Zusatz:

double getgrundflaeche(double r); 

int main(void){ 
+0

Danke! Ich dachte, dass dies in C nicht benötigt wird und in den Codebeispielen, die ich bekam, wurde nie eine Funktion deklariert. Die Hauptfunktion war jedoch die letzte Funktion in der Codedatei in den Beispielen. – user2974830

+0

Das würde auch das Problem lösen - die Erklärung der Funktion muss auf die eine oder andere Art gesehen werden. –

Verwandte Themen