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

标签 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”文件中写了一个值表。所以它是一个值数组。 现在,在写下表中的所有值并关闭文件“a5b3c7”后,我想调用 calc.c 函数并对创建的表中的数字进行一些计算。我需要将一个 int 和它应该使用的文件的名称作为参数传递。

问题: 我的 calc.c 函数应该有 2 个输入,一个“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);

关于c - 如果主程序包含 int 和 char 作为参数,如何在主程序中定义和调用外部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917208/

相关文章:

c - 读取文本文件,忽略注释

list - 如果未为此 S4 类定义 $ 运算符,如何从 glmerMod 对象中提取模型组件

C++ 运算符重载 - 调用函数以获取重载中的值

c - 我有一个程序,在 win95 上运行,但没有在 winXP 上编译

c++ - 使用 cmake 处理头文件依赖项

C 的 HTML 解析器库

c++ - 检查 C/C++ 中的数字是否为整数(不使用 scanf/gets/etc)

C程序编译错误: Undefined reference to function 'compare' ?

c - 从模块的外部上下文中正确隐藏函数

c - ncurses 无法识别箭头键宏