El argumento C no coincide con el prototipo

Estoy intentando leer un archivo e insertarlo en mi variable de estructura “codón”, pero aparece un error de “los argumentos no coinciden con el prototipo”

Aquí está mi .c:

#include  #include  #include "genome.h" void LoadGeneticCode(filename, c){ FILE *file = fopen(filename, "r"); } int main() { codon c[64]; //making array of c LoadGeneticCode('data.dat', c); return 0; } 

.h

 typedef struct { char b1,b2,b3; int a;} codon; void LoadGeneticCode(char *filename, codon c[64]); 

makefile

 HEADERS = genome.h default: genome genome.o: genome.c $(HEADERS) gcc -c genome.c -o genome.o genome: genome.o gcc genome.o -o genome clean: -rm -f genome.o -rm -f genome 

Siento que es un tipo simple, pero no estoy seguro de cómo solucionarlo.

Primer punto negativo: void LoadGeneticCode(filename, c){
Debe especificar los tipos de cada argumento. Se tratan como argumentos int y, por lo tanto, no coinciden con el prototipo.

Segundo punto negativo: LoadGeneticCode('data.dat', c);

Poner varios caracteres en la constante de caracteres 'data.dat' no es bueno. Debe ser una cadena "data.dat" .

Deberías escribir tu .c así:

 #include  #include  #include "genome.h" void LoadGeneticCode(char *filename, codon c[64]){ FILE *file = fopen(filename, "r"); } int main(void) { codon c[64]; //making array of c LoadGeneticCode("data.dat", c); return 0; } 

En su archivo .c , intente cambiar

 void LoadGeneticCode(filename, c){ 

a

 void LoadGeneticCode(char *filename, codon c[64]){ 

Su función llamada en main

 LoadGeneticCode('data.dat', c); // string literals should be in double quotes 

En su lugar, intente esto-

 LoadGeneticCode("data.dat", c);