2016-09-25 5 views
-3

Ich studiere C in der Schule, wir mussten ein Programm erstellen, das einen Vektor von Musikalben verwaltet, ich habe versucht, kompilieren, aber ich habe diesen Fehler und ich kann keine Informationen darüber finden, der Compiler Fehler ist: "in get_parm_info, bei c-decl.c: 4637".Fehler beim Kompilieren eines C-Programms

Was soll ich tun?

Es ist nur eine Nachricht.

Der Code ist zu lang, um dort zu passen, aber es hat keine anderen Fehler als das.

#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 
#define MAX_STR 50 
#define MAX_CANZONI 20 
#define ALBUM_SIZE 44 
struct t_canzone { //54 bytes 
    char titolo[MAX_STR]; 
    int durata; //In secondi 
}; 
struct t_autore { //104 bytes 
    char nome[MAX_STR]; 
    char cognome[MAX_STR]; 
    int eta; 
}; 
struct t_album { 
    struct t_autore autore; //104 bytes 
    char titolo[MAX_STR]; //50 bytes 
    int numCanzoni;   //4 bytes 
    struct t_canzone canzoni[MAX_CANZONI]; //1080 bytes 
};  

void inizializzazione(struct t_album album); 
void stampacompleta(struct t_album album); 
void stampaalbum(struct t_album album,char nome[]); 
void cercacanzone(struct t_album album, char nome[]); 
void modificaalbum(struct t_album album, char nome[]); 
void aggiungicanzone(struct t_album album, char nome[]); 
void ordinamento(struct t_album album,void confronto(struct t_album,int,int); 
void crescente(struct t_album album,int i,int z); 
void decrescente(struct t_album album,int i,int z); 
void titlesort(struct t_album album,int i,int z); 
void namesort(struct t_album album,int i,int z); 

void crescente(struct t_album album,int i,int z){ 
    struct t_album supporto; 
    if(album[i].numCanzoni>album[z].numCanzoni) 
    { 
     supporto=album[i]; 
     album[i]=album[z]; 
     album[z]=supporto; 
    } 
} 

void decrescente(struct t_album album,int i,int z){ 
    struct t_album supporto; 
    if(album[i].numCanzoni<album[z].numCanzoni) 
    { 
     supporto=album[i]; 
     album[i]=album[z]; 
     album[z]=supporto; 
    } 
} 

void titlesort(struct t_album album,int i,int z){ 
    if(strncmp(album[i].titolo,album[z].titolo)>0) 
    { 
     supporto=album[i]; 
     album[i]=album[z]; 
     album[z]=supporto; 
    } 
} 

void namesort(struct t_album album,int i,int z){ 
    if(strncmp(album[i].autore.nome,album[z].autore.nome)>0) 
    { 
     supporto=album[i]; 
     album[i]=album[z]; 
     album[z]=supporto; 
    } 
    else if(strncmp(album[i].autore.nome,album[z].autore.nome)==0) 
    { 
     if(strncmp(album[i].autore.cognome,album[z].autore.cognome)>0) 
     { 
      supporto=album[i]; 
      album[i]=album[z]; 
      album[z]=supporto; 
     } 
    } 
} 



void ordinamento(struct t_album album,void confronto(struct t_album,int,int){ 
    int i,z; 
    for(i=0;i<ALBUM_SIZE-1;i++) 
    { 
     for(z=i+1;z<ALBUM_SIZE;z++) 
     { 
      confronto(album[],i,z); 
     } 
    } 
}    

[Update von Kommentar:]

Der komplette "Fehler" Nachricht ist:

Compiler: Default compiler Executing gcc.exe... gcc.exe "C:\Users\lavpreet\Desktop\canzone.c" -o "C:\Users\lavpreet\Desktop\canzone.exe" -g3 -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -g3 C:\Users\lavpreet\Desktop\canzone.c:35: internal compiler error: in get_parm_info, at c-decl.c:4637 
Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.mingw.org/bugs.shtml> for instructions. Execution terminated 
+0

zeigen fehlen nur * relevant * Code für das Problem. Hast du das Debuggen probiert? – Li357

+1

... und die * ganze * Fehlermeldung. –

+0

Nein, ich weiß nicht, wie es geht, aber das Kompilierprotokoll sagt das: 'Compiler: Standardcompiler Ausführen von gcc.exe ... gcc.exe" C: \ Benutzer \ lavpreet \ Desktop \ canzone .c "-o" C: \ Benutzer \ lavpreet \ Desktop \ canzone.exe "-g3 -I" C: \ Dev-Cpp \ include "-L" C: \ Dev-Cpp \ lib "-g3 C: \ Benutzer \ lavpreet \ Desktop \ canzone.c: 35: interner Compilerfehler: in get_parm_info, bei c-decl.c: 4637 Bitte senden Sie einen vollständigen Fehlerbericht, mit vorverarbeiteten Quelle, falls zutreffend. Siehe für Anweisungen. Ausführung beendet ' –

Antwort

0

diese Zeile:

void ordinamento(  struct t_album album, void confronto(struct t_album, int, int); 

fehlt eine Hinter )

auch diese Zeile:

void ordinamento(struct t_album album,void confronto(struct t_album,int,int){ 

ist ein nachlauf )

+0

wenn Sie die oben genannten zwei Syntaxfehler reparieren, dann wird eine Menge anderer Warnungen und Fehler vom Compiler angezeigt. Alle diese anderen Warnungen und erro rs muss auch behoben werden. – user3629249

+0

Ja, es hat sehr gut funktioniert. Jetzt werde ich die anderen Fehler beheben –

Verwandte Themen