GNU-Compiler: Implicit declaration



  • Hallo Leute,

    in meine Prüfungsaufgabe muss das Programm Fehler- und Warnungsfrei mit dem GNU-Compiler laufen.

    In Visual Studio läuft das Programm 1a.

    Allerdings wenn ich es in dem GNU-Compiler ausführe erhalte ich folgende Warnung:

    sudoku.c: In function `main':
    sudoku.c:33: warning: implicit declaration of function `soduku_einlesen'
    

    Ich habe allerdings die Funktion ordnungsgemäßg deklariert inkl. Prototype.

    Code:

    Prototype:

    int  sudoku_einlesen(char *, struct Sudoku *);
    

    Main-Funktion (hier meckert er!)

    int result;
    
    	result = soduku_einlesen(argv[1], &sudoku);
    
    	if(result < 0)
    		return -1;
    

    Eigentliche Funktion:

    FILE *fp, *fp_error;
    	int i, j;
    	char temp[G+3] = {0};
    
    	if((fp_error = fopen("sudoku_geloest.txt", "w")) == NULL) 
    	{
    		printf("Datei sudoku_geloest.txt konnte zum Schreiben nicht erstellt werde!\n");
    		fprintf(fp_error, "Eingabefehler");
    		fclose(fp_error);
    		return -1;
    	}
    
    	if((fp = fopen(dateiname, "r")) == NULL) 
    	{
    		printf("Datei %s nicht gefunden!\n", dateiname);
    		fprintf(fp_error, "Eingabefehler");
    		fclose(fp_error);
    		return -1;
    	}
    
    	for(i = 0; i < G; i++) 
    	{
    		if(fgets(temp, G + 3, fp) == NULL) 
    		{
    			printf("Daten nicht vollstaendig!\n");
    			fclose(fp);
    			fprintf(fp_error, "Eingabefehler");
    			fclose(fp_error);
    			return -1;  
    		}
    		for(j = 0; j < G; j++) 
    		{
    			if(temp[j] == ' ' || (temp[j] >= '1' && temp[j] <= '9'))
    				s->spielfeld[i][j] = (temp[j] == ' ') ? 0 : temp[j] - '0';
    			else
    			{
    				printf("Falsche Daten!\n");
    				fclose(fp);
    				fprintf(fp_error, "Eingabefehler");
    				fclose(fp_error);
    				return -1; 
    			}
    		}
    	}
    
    	fclose(fp);
    	fclose(fp_error);
    
    	return 0;
    

    Habt ihr eine Idee woran es liegt? Ich weiß es echt nicht ...

    Gruß

    Hibbert



  • Ich glaube, ich hab vergessen einen Kommandozeilenparameter zu übergeben.

    Nur wie mache ich das im GNU-Compiler?

    Edit:

    Es liegt nicht daran.

    Hat jemand ne Idee?



  • LOL

    So einen Fehler kann man ja fast nicht bemerken...

    Prototyp:
    sudoku_einlesen
    Funktion:
    soduku_einlesen

    Ich würde dir die Tastenkombination Ctrl + C und Ctrl + V empfehlen um das Problem beim nächsten Mal zu vermeiden.



  • Danke habs echt net gemerkt ...


Log in to reply