如果主程序包含int和char作为参数,如何在主程序中定义和调用外部函数?

如果主程序包含int和char作为参数,如何在主程序中定义和调用外部函数?,c,function,header-files,C,Function,Header Files,所以,我有一个main.c文件,代码在其中,还有一个外部calc.c文件,我想在其中进行一些计算。我在main.c(calc.h)中定义了一个头文件,应该在某个时候调用函数calc.c。在main.c中,我通过终端有3个输入,我们称它们为a、b和c,这些是一些数字。根据输入的数字,我创建了保存在“char filename”中的文件名(例如a5b3c7)。然后在main.c中,我进行一些计算,并在这个“a5b3c7”文件中编写一个值表。所以它是一个值数组。 现在,在写下表中的所有值并关闭文件“a

所以,我有一个main.c文件,代码在其中,还有一个外部calc.c文件,我想在其中进行一些计算。我在main.c(calc.h)中定义了一个头文件,应该在某个时候调用函数calc.c。在main.c中,我通过终端有3个输入,我们称它们为a、b和c,这些是一些数字。根据输入的数字,我创建了保存在“char filename”中的文件名(例如a5b3c7)。然后在main.c中,我进行一些计算,并在这个“a5b3c7”文件中编写一个值表。所以它是一个值数组。 现在,在写下表中的所有值并关闭文件“a5b3c7”之后,我想调用calc.c函数并使用创建的表中的数字进行一些计算。我需要作为参数传递一个int和它应该使用的文件名

问题: 我的calc.c函数应该有两个输入,一个是“int”,另一个是“char”。 在头文件calc.h中,我有:

    int calc(int i, char filename);
我是否应该按如下方式启动calc.c函数

    int calc(int i, char filename){
       FILE * pointer;
       int ...;
       double ...;
       pointer = fopen(filename, "r");
       .
       .
       .
    }
??函数和参数的类型定义得好吗? 现在如何从主程序调用此函数? 我应该写点什么吗

    int main (void) {
    ...      
    calc(i, filename);
    ...
    }
在尝试使其工作时,我遇到了不同的错误,如“预期的'char',但参数的类型为'char*'”,“传递'fopen'的参数1使整数中的指针没有强制转换[默认情况下启用]”,“预期的'const char*restrict”,但参数的类型为'char'


谢谢你的帮助,我还在学习;)

使用
char*filename
而不是
char filename

int calc(int i, char *filename);

使用
char*filename
而不是
char filename

int calc(int i, char *filename);

除了一个错误之外,您的所有内容都是正确的(即使它可能写得“更好”):在C中,字符串是
char*
,而不是
char
。当然,这一点的含义不能用这几个词来表达,但您可以轻松查找“C中的字符串”材料。您的所有内容都是正确的(即使它可能是“更好的”)“writed”),除了一个错误:在C中,字符串是
char*
,而不是
char
。当然,这句话的含义不能用这几个字来表达,但是你可以很容易地查找“C语言中的字符串”材料。但我还有一个问题。。。如果calc.c文件中有printf语句,我从main.c调用它,它应该在终端中写入printf的输出,还是我需要创建一个文件,将calc.c中的新值存储在其中?@makeasmile it print on terminal。哦,好的,我想是这样,但不是这样,我似乎还有一些工作要做:P Tnx!好吧,看来至少我摆脱了错误。但我还有一个问题。。。如果calc.c文件中有printf语句,我从main.c调用它,它应该在终端中写入printf的输出,还是我需要创建一个文件,将calc.c中的新值存储在其中?@makeasmile it print on terminal。哦,好的,我想是这样,但不是这样,我似乎还有一些工作要做:P Tnx!