C语言丨正确使用extern关键字详解

本文详细介绍了C语言中extern关键字的使用,包括在同一文件内引用变量、跨文件引用全局变量和函数。通过实例解析了extern如何解决编译器找不到变量声明的问题,并强调了extern只能用于全局变量和函数,不能用于局部变量。此外,还提到了extern与const关键字的结合使用,以及对比了使用#include包含整个文件与extern引用的优缺点。
摘要由CSDN通过智能技术生成

利用关键字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这个变量是存在的,但是不是在这之前声明的,你到别的地方找找吧,果然,这样就可以顺利通过编译啦。但是你要是想欺骗编译器也是不行的࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值