如何使用C中的.h文件从外部.c文件中调用函数?

Mio*_*oto -2 c file external function call

我在调用外部.c文件中定义的外部函数时遇到了一些麻烦.

我的主文件(main.c)是:

#include <stdio.h>
#include "header.h"

int main () {

int a = 100;
int b = 200;
int ret;

ret = maximo(a, b);

printf( "Max value is : %d\n", ret );

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我使用一个.h名为header.h声明函数的文件maximo().该header.h文件是:

int maximo(int num1, int num2);
Run Code Online (Sandbox Code Playgroud)

在另一个.c文件中,我有功能的定义maximo().该maximo.c文件是:

int maximo(int num1, int num2) {

int result;

if (num1 > num2)
   result = num1;
else
   result = num2;

return result;
}
Run Code Online (Sandbox Code Playgroud)

我上面提到的代码是我的文件的完整代码.该header.h文件只有一行.而且我没有#includemaximo.c文件中添加任何内容.

如果它缺少任何东西,我不会知道,因为,正如你所看到的,我是编程的初学者.

我遇到的错误是:

undefined reference to 'maximo'
error: 1d returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我尝试将maximo.c代码放在header.h文件中,它工作正常,但这不是我需要的.

在我的搜索过程中,我阅读了一些关于将两个.c代码编译在一起的内容,以便将它们转换为.o文件然后.h文件可以正确链接它们,但我不知道该怎么做.

所以,如果有人能帮助我,我将非常感激!

提前致谢!

Jos*_*hua 5

您还需要#include "header.h"在您的maximo.c文件中.不要忘记头文件中包含防护:

#ifndef MAXIMO_H
#define MAXIMO_H

int maximo(int num1, int num2);

#endif
Run Code Online (Sandbox Code Playgroud)

PS会建议您将"header.h"更改为"maximo.h".

您的命令行应为:

gcc main.c maximo.c -o "filename"
Run Code Online (Sandbox Code Playgroud)