我试图从文件中读取并将其插入到我的结构复合变量“密码子”中。但是我得到了一个错误的参数并不匹配原型'。
这是我的.c:
#include <math.h>
#include <stdio.h>
#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]);
生成文件
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
我觉得这是一个简单的类型未命中比赛,但我不确定如何解决它。
答案 0 :(得分:3)
第一个坏点:void LoadGeneticCode(filename, c){
您应该指定每个参数的类型。它们被视为int
个参数,因此它与原型不匹配。
第二个坏点:LoadGeneticCode('data.dat', c);
在字符常量'data.dat'
中放置多个字符并不好。它应该是一个字符串"data.dat"
。
你应该像这样写你的.c:
#include <math.h>
#include <stdio.h>
#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;
}
答案 1 :(得分:1)
在.c
文件中,尝试更改
void LoadGeneticCode(filename, c){
到
void LoadGeneticCode(char *filename, codon c[64]){
答案 2 :(得分:1)
您的函数调用main
-
LoadGeneticCode('data.dat', c); // string literals should be in double quotes
而是试试这个 -
LoadGeneticCode("data.dat", c);