extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例。
首先,引用同一个文件的变量,先写一个简单的函数。
#include
int func();
int main()
{
func(); //1
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d\n",num);
}
这里一共定义了两个函数,一个主函数一个子函数,子函数里直接打印的num的数据,要打印数据首先要找到定义的数据,这里定义的num是全局变量所以可以直接打印数据。
如果我们用extern进行定义数据时需要采用全局变量定义,在其他地方使用,比如我们在主函数定义了一个extern变量我们在其他地方使用时需要线对变量进行赋值操作,否则找不到相关的num。
#include
int func();
int main()
{
func(); //1
extern int num;
printf("%d",num); //2
return 0;
}
int num = 3;
int func()
{
printf("%d\n",num);
}
下面再说extern与const使用问题 。
如果我们要使用一个全局变量而且是不能改变的,那我们需要用const配合使用,代码如下:
#include
int main()
{
extern const int num;
printf("%d",num);
return 0;
}
子函数
#include
const int num=5;
void func()
{
printf("fun in a.c");
}
这里我们在主函数定义了一个extern const变量,需要在子函数的全局变量中定义const int num=5;这样就可以使用。
extern除了引用另一个文件中的变量外,还可以引用另一个文件中的函数,引用方法和引用变量相似。
mian.c
#include
int main()
{
extern void func();
func();
return 0;
}
common.c
#include
const int num=5;
void func()
{
printf("fun in a.c");
}
这里main函数中引用了b.c中的函数func。因为所有的函数都是全局的,所以对函数的extern用法和对全局变量的修饰基本相同,需要注意的就是,需要指明返回值的类型和参数。
审核编辑:汤梓红
-
STM32
+关注
关注
2274文章
10930浏览量
358090 -
参数
+关注
关注
11文章
1862浏览量
32464 -
函数
+关注
关注
3文章
4350浏览量
63074
发布评论请先 登录
相关推荐
C语言关键字分别发生在哪个阶段
示波器高压探头使用方法
光纤收发器的使用方法和注意事项
inline关键字被优化导致此类函数被布局在flash内,怎么处理?
电流探头的使用方法及测量技巧
![电流探头的<b class='flag-5'>使用方法</b>及测量技巧](https://file1.elecfans.com/web2/M00/EF/FD/wKgaomZvzJ2AAAuMAAS-sXvP0Cg263.png)
smt贴片加工常用的检测修理方法有哪些
可编程电源使用方法
gis中常用的空间分析方法
简单总结一下嵌入式C++中常见的错误形式
TSMaster 序列发送模块在汽车开发测试中的应用
![TSMaster 序列发送模块在汽车开发测试<b class='flag-5'>中</b>的应用](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
评论