c语言 extern用法
什么是extern关键字?
在C语言中,`extern`是一个关键字,用于说明一个变量或函数在其他文件中定义。在别的文件中用`extern`来声明这个变量或函数,从而让编译器知道它是在其他文件中定义的。
`extern`关键字有几种用法?
1. 外部变量定义
当我们需要声明一个外部定义的变量时,使用`extern`关键字。外部定义的变量是指在全局范围内声明的变量,其作用域比较大,可以在不同的文件中使用。
在一个源文件中,我们可以用如下的方式定义一个外部变量:
int external_var = 0;
如果在其他文件中需要使用这个变量,可以用`extern`关键字声明该变量:
c语言return的用法和搭配
extern int external_var;
这个声明告诉编译器,这个变量已经在另一个文件中定义。在C语言中,除了函数参数以外的变量默认都是外部变量。
2. 外部函数定义
`extern`关键字也可以用于声明外部定义的函数。在不同的文件中,我们可以使用如下代码定义和声明一个函数:
在一个文件中定义函数
int sum(int a, int b) {
    return a + b;
}
在另一个文件中声明函数
extern int sum(int a, int b);
这里的函数`sum()`在一个文件中被定义,而在其他文件中被声明。因为C语言中不允许在一个源文件中定义多个同名函数,因此需要使用`extern`声明重复的函数。
3. 引用已定义的外部变量
如果我们希望在一个文件中使用另一个文件中定义的外部变量,那么就需要使用`extern`关键字。以下是一个示例程序:
example1.c:
#include <stdio.h>
int external_var = 5;
int main() {
    extern int external_var; 声明在其他文件中定义的external_var变量
    printf("The value of external_var is: %d\n", external_var);
    return 0;
}
example2.c:
extern int external_var; 在文件中声明external_var变量
int main() {
    external_var = 10; 修改在其他文件中定义的external_var变量的值
    return 0;
}
在`example1.c`文件中,我们定义了一个全局变量`external_var`。在`main()`函数中,我们通过`extern`声明引用了在`example2.c`中定义的变量。这个程序打印出此时`external_var`的
值。在另一个文件中修改这个变量的值,将会影响到原来的程序。
4. 引用已定义的外部函数
我们也可以使用`extern`关键字来引用另一个文件中已经定义的外部函数。下面是一个示例:
example1.c:
#include <stdio.h>
extern int sum(int a, int b); 声明在其他文件中定义的函数
int main() {
    int result = sum(2, 3); 调用在其他文件中已经定义的sum()函数
    printf("The result is: %d\n", result);
    return 0;
}
example2.c:
int sum(int a, int b) { 在其他文件中定义sum()函数
    return a + b;
}
在`example1.c`文件中,我们通过`extern`声明引用了在`example2.c`中定义的`sum()`函数。在`main()`函数中,我们调用了这个函数。`sum()`函数的具体实现在另一个文件中,使用`extern`关键字在这里只是声明这个函数已经被定义。
5. 外部常量声明
最后一个`extern`关键字的用法是用来声明外部定义的常量。当我们声明一个在其他文件中定义的常量时,可以使用`extern`关键字。以下是一个例子:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。