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);