简说extern关键字

关键字extern的作用是在一个文件中引用一个变量或者一个函数

引用同一个文件中的变量

在编写代码的时候会出现一个变量在使用的时候,发现这个变量声明的位置在使用位置的后边,但是这个时候不想把声明位置给提前,导致程序出现变量未定义的错误,这个时候可以通过extern在使用之前对其进行声明,既可以使用该变量。

例子:

#include<stdio.h>
void func();
int main() {
	func(); //此时调用func函数在num声明之后
	extern int num;
	printf("%d", num);// 虽然调用num在声明之前,但是通过ectern对其进行修饰可以使用
	return 0;
}
int num = 1;  
void func() {
	printf("%d\n", num++);
}

引用另个一个文件中的全局变量

如果在同一个工程下的其他文件有一个非static修饰的全局变量要在当前问下使用,可以使用extern对其修饰。如下所示:

// main.c
#include<stdio.h>
int main(){
    extern int num;
    printf("%d",num);
    return 0;
}
//app.c
#include<stdio.h>
int num = 5;
void func(){
    printf("fun in app.c");
}

引用另个一个文件中的函数

如果在另外一个文件中有一个函数需要在当前文件下使用,但是又不需要全部的函数,则可以通过extern的方法对其进行声明,则可以不需要加入一个头文件,具体使用方法和全局变量相同。

// main.c
#include<stdio.h>
int main(){
    extern void func();
    func();
    return 0;
}
// app.c
#include<stdio.h>
void func(){
    printf("fun in a.c");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值