我试图从一个文件中读取并将它插入到我的结构复合变量'codon‘中,但是我得到了’参数不匹配prototype‘的错误。
这是我的.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]);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我觉得这是一个简单的类型错过比赛,但我不知道如何解决它。
发布于 2015-11-17 16:02:45
第一个缺点: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;
}发布于 2015-11-17 16:01:58
在您的.c文件中,尝试更改
void LoadGeneticCode(filename, c){至
void LoadGeneticCode(char *filename, codon c[64]){发布于 2015-11-17 16:02:01
你在main中的函数调用-
LoadGeneticCode('data.dat', c); // string literals should be in double quotes不如试试这个-
LoadGeneticCode("data.dat", c);https://stackoverflow.com/questions/33761443
复制相似问题