首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C参数与原型不匹配

C参数与原型不匹配
EN

Stack Overflow用户
提问于 2015-11-17 15:58:11
回答 3查看 1.1K关注 0票数 0

我试图从一个文件中读取并将它插入到我的结构复合变量'codon‘中,但是我得到了’参数不匹配prototype‘的错误。

这是我的.c:

代码语言:javascript
复制
#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

代码语言:javascript
复制
typedef struct { char b1,b2,b3; int a;} codon;

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

makefile

代码语言:javascript
复制
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

我觉得这是一个简单的类型错过比赛,但我不知道如何解决它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-17 16:02:45

第一个缺点:void LoadGeneticCode(filename, c){

您应该指定每个参数的类型。它们被视为int参数,因此它将与原型不匹配。

第二个缺点:LoadGeneticCode('data.dat', c);

在字符常量'data.dat'中放置多个字符是不好的。它应该是一个字符串"data.dat"

你应该这样写你的.c:

代码语言:javascript
复制
#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;
}
票数 3
EN

Stack Overflow用户

发布于 2015-11-17 16:01:58

在您的.c文件中,尝试更改

代码语言:javascript
复制
void LoadGeneticCode(filename, c){

代码语言:javascript
复制
void LoadGeneticCode(char *filename, codon c[64]){
票数 1
EN

Stack Overflow用户

发布于 2015-11-17 16:02:01

你在main中的函数调用-

代码语言:javascript
复制
LoadGeneticCode('data.dat', c);       // string literals should be in double quotes

不如试试这个-

代码语言:javascript
复制
LoadGeneticCode("data.dat", c);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33761443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档