anyuan2002.com - vwin网

查找: 您的方位主页 > 电脑频道 > 编程代码 > 阅览资讯:C言语正确运用extern关键字

C言语正确运用extern关键字

2019-03-30 19:36:02 来历:www.anyuan2002.com 【

转载请注明出处http://blog.csdn.net/xingjiarong/article/details/47656339

运用关键字extern,能够在一个文件中引证另一个文件中界说的变量或许函数,下面就结合具体的实例,分类阐明一下。
一、引证同一个文件中的变量

#include<stdio.h>

int func();

int main()
{
  func(); //1
  printf("%d",num); //2
  return 0;
}

int num = 3;

int func()
{
  printf("%d\n",num);
}

假如依照这个次序,变量 num在main函数的后边进行声明和初始化的话,那么在main函数中是不能直接引证num这个变量的,由于当编译器编译到这一句话的时分,找不到num这个变量的声明,可是在func函数中是能够正常运用,由于func对num的调用是发生在num的声明和初始化之后。

假如我不想改动num的声明的方位,可是想在main函数中直接运用num这个变量,怎么办呢?能够运用extern这个关键字。像下面这一段代码,运用extern关键字先声明一下num变量,告知编译器num这个变量是存在的,可是不是在这之前声明的,你到其他当地找找吧,公然,这样就能够顺畅经过编译啦。可是你要是想诈骗编译器也是不可的,比方你声明晰extern int num;可是在后面却没有真实的给出num变量的声明,那么编译器去其他当地找了,可是没找到仍是不可的。

下面的程序便是运用extern关键字,运用在后边界说的变量。

#include<stdio.h>

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这个关键字就这点功用,那么这个关键字就显得剩余了,由于上边的程序能够经过将num变量在main函数的上边声明,使得在main函数中也能够运用。
extern这个关键字的真实的作用是引证不在同一个文件中的变量或许函数。

main.c

#include<stdio.h>

int main()
{
  extern int num;
  printf("%d",num);
  return 0;
}

b.c

#include<stdio.h>

int num = 5;

void func()
{
  printf("fun in a.c");
}

例如,这儿b.c中界说了一个变量num,假如main.c中想要引证这个变量,那么能够运用extern这个关键字,留意这儿能成功引证的原因是,num这个关键字在b.c中是一个大局变量,也便是说只有当一个变量是一个大局变量时,extern变量才会起作用,向下面这样是不可的。

mian.c

#include<stdio.h>

int main()
{
  extern int num;
  printf("%d",num);
  return 0;
}

b.c

#include<stdio.h>

void func()
{
  int num = 5;
  printf("fun in a.c");
}

别的,extern关键字只需求指明类型和变量名就行了,不能再从头赋值,初始化需求在原文件地点处进行,假如不进行初始化的话,大局变量会被编译器主动初始化为0。像这种写法是不可的。

extern int num=4;

可是在声明之后就能够运用变量名进行修正了,像这样:

#include<stdio.h>

int main()
{
  extern int num;
  num=1;
  printf("%d",num);
  return 0;
}

假如不想这个变量被修正能够运用const关键字进行润饰,写法如下:
mian.c

#include<stdio.h>

int main()
{
  extern const int num;
  printf("%d",num);
  return 0;
}

b.c

#include<stdio.h>

const int num=5;
void func()
{
  printf("fun in a.c");
}

运用include将另一个文件悉数包括进去能够引证另一个文件中的变量,可是这样做的成果便是,被包括的文件中的一切的变量和办法都能够被这个文件运用,这样就变得不安全,假如仅仅期望一个文件运用另一个文件中的某个变量仍是运用extern关键字更好。

三、引证另一个文件中的函数

extern除了引证另一个文件中的变量外,还能够引证另一个文件中的函数,引证办法和引证变量类似。

mian.c

#include<stdio.h>

int main()
{
  extern void func();
  func();
  return 0;
}

b.c

#include<stdio.h>

const int num=5;
void func()
{
  printf("fun in a.c");
}

这儿main函数中引证了b.c中的函数func。由于一切的函数都是大局的,所以对函数的extern用法和对大局变量的润饰根本相同,需求留意的便是,需求指明回来值的类型和参数。

 
 

本文地址:http://www.anyuan2002.com/bcdm/100048.html
Tags: 言语 正确 extern
修改:vwin网
vwin娱乐场
推行内容
引荐阅览
抢手引荐
引荐文章
关于咱们 | 联络咱们 | 友情链接 | 网站地图 | Sitemap | App | 回来顶部