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

Pro*_*Pus 39 c external function

我的档案是

// main.c  

#include "add.c"

int main(void) {
    int result = add(5,6);
    printf("%d\n", result);
}  
Run Code Online (Sandbox Code Playgroud)

// add.c  

int add(int a, int b) {
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

Gau*_*ain 29

使用#include "ClasseAusiliaria.c" [不要使用尖括号(<>)]

我更喜欢保存文件,.h扩展名在同一目录/文件夹中.

#include "ClasseAusiliaria.h"

  • 为什么你更喜欢.h而不是.c?有一些区别吗? (16认同)
  • 为什么最好使用 .h 文件:http://stackoverflow.com/a/232710/6028746 (2认同)

Ell*_*sch 11

改变你的Main.c喜好

#include <stdlib.h>
#include <stdio.h>
#include "ClasseAusiliaria.h"

int main(void)
{
  int risultato;
  risultato = addizione(5,6);
  printf("%d\n",risultato);
}
Run Code Online (Sandbox Code Playgroud)

ClasseAusiliaria.h像这样创造

extern int addizione(int a, int b);
Run Code Online (Sandbox Code Playgroud)

然后我编译并运行你的代码,我得到了一个输出

11
Run Code Online (Sandbox Code Playgroud)


小智 6

您必须int add(int a, int b);在头文件中声明 (注意分号)并将文件包含在两个文件中.将它包含到Main.c中会告诉编译器应该如何调用该函数.包含在第二个文件中将允许您检查声明是否有效(如果声明和实现不匹配,编译器会抱怨).

然后,您必须将*.c文件编译到一个项目中.细节依赖于编译器.


Kra*_*ken 5

制作一个文件classAusiliaria.h并在其中提供您的方法签名。

现在,不是包含 .c 文件,而是包含此 .h 文件。


小智 5

这里有很多伟大的贡献,但我还是要添加我的更少。

我注意到的第一件事是,您没有在主文件中做出要创建称为add()的函数的任何承诺。此计数已在主文件中完成,如下所示:

    int add(int a, int b); 
Run Code Online (Sandbox Code Playgroud)

在您的主要功能之前,这样您的主要功能将识别出add函数并尝试查找其可执行代码。因此,基本上您的文件应该是

Main.c

    int add(int a, int b);

    int main(void) {
        int result = add(5,6);
        printf("%d\n", result);
    }  
Run Code Online (Sandbox Code Playgroud)

和// add.c

    int add(int a, int b) {
        return a + b;
    }
Run Code Online (Sandbox Code Playgroud)