gpt4 book ai didi

c - 通过引用传递,不同基类型的错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:56 26 4
gpt4 key购买 nike

我在 C 程序中遇到一个错误,这让我非常沮丧。

错误是:

main.c(65): error C2371: 'extractVals' : redefinition; different basic types

directClass 假设接受对 char 的引用,特别是第 20 行(在 switch case 'g' 中)使用变量 s。我不确定它们为什么不是相同的基本类型,但我对 C 不是很好,所以我不擅长识别所有问题。任何帮助都会很棒。

#include <gl\glew.h>
#include <gl\freeglut.h>
#include <gl\GLU.h>
#include <stdio.h>

void directFile(char input[100]){
char switchVal [10] , *s = switchVal;
float val1, val2, val3, val4;

s = strtok(input, " \n\0");

printf("Told str is %s\n", s);
switch(*s){

case '#':
printf("%s is a comment. Has no bearing on application\n", s);
break;
case 'g':
printf("%s is the command to translate an object!\n", s);
extractVals(s);
break;
case 's':
printf("%s is the command to scale, now which one is it?\n",s);
break;
case 'r':
printf("%s will rotate the image!\n",s);
break;
case 'c':
if(strcmp(s , "cone") == 0){
printf("It appears you have your self a %s\n", s);
} else if (strcmp(s , "cube") == 0){
printf("%s is cool too\n" , s);
} else if (*s == 'c'){
printf("Welp command was \"%s\", lets change some colors huh?\n",s);
}
break;
case 't':
break;
case 'o':
break;
case 'f':
break;
case 'm':
break;
}
}

void extractVals(char *input){
while(input != NULL){
printf("%s\n", input);
input = strtok(NULL, " ,");
}

}

void makeLower(char *input)
{
while (*input != '\0')
{
*input = tolower(*input);
input++;
}
}


int main(int argc, char *argv[]) {
FILE *file = fopen(argv[1], "r");
char linebyline [50], *lineStr = linebyline;
char test;

glutInit(&argc, argv);

while(!feof(file) && file != NULL){
fgets(lineStr , 50, file);
makeLower(lineStr);
printf("%s",lineStr);

directFile(lineStr);

}
fclose(file);


glutMainLoop();
}

最佳答案

您的错误是因为您在调用 extractVals() 之前没有提供原型(prototype)。当编译器遇到这种情况时,它假定函数声明如下:

int extractVals();

然后当它找到定义时,它与这个假设相冲突。可以通过在 directFile() 之前或在您包含的 header 中添加适当的原型(prototype)来修复此错误:

void extractVals(char *input);

关于c - 通过引用传递,不同基类型的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9039220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com