请举例C语言 main.c文件中调用其他源文件中的函数 使用和不适用关键字extern 来声明函数
时间: 2024-03-01 22:53:21 浏览: 80
C语言如何在一个.c源文件里调用另一个源文件中的函数
假设有两个C源文件 `main.c` 和 `func.c`,其中 `func.c` 中定义了一个函数 `add()`,现在在 `main.c` 中需要调用 `add()` 函数。
1. 不使用 `extern` 关键字
如果在 `func.c` 中定义了 `add()` 函数,并且在 `main.c` 中需要调用 `add()` 函数,可以在 `main.c` 中通过包含 `func.c` 的头文件来调用 `add()` 函数,如下所示:
```c
// main.c
#include "func.c"
int main() {
int a = 10, b = 20;
int c = add(a, b);
printf("%d + %d = %d\n", a, b, c);
return 0;
}
```
```c
// func.c
int add(int x, int y) {
return x + y;
}
```
在上面的例子中,`main.c` 中直接包含了 `func.c` 的头文件,因此可以直接调用 `add()` 函数,不需要使用 `extern` 关键字。
2. 使用 `extern` 关键字
另一种方法是在 `func.c` 中定义 `add()` 函数,并在 `main.c` 中使用 `extern` 关键字来声明 `add()` 函数,如下所示:
```c
// main.c
extern int add(int x, int y);
int main() {
int a = 10, b = 20;
int c = add(a, b);
printf("%d + %d = %d\n", a, b, c);
return 0;
}
```
```c
// func.c
int add(int x, int y) {
return x + y;
}
```
在上面的例子中,`main.c` 中使用 `extern` 关键字来声明 `add()` 函数,这样在编译时就能够检查函数的存在和类型,从而避免编译错误。
阅读全文