extern关键字的使用

作用:声明外部符号(使用其他文件的全局变量)

例子:

源文件:

test.c

#include <stdio.h>
extern int year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
printf("%d", year);//打印结果2020
return 0;
}

add.c

int year = 2022;//声明全局变量

有static关键词的情况

static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部才可以使用,其他源文件不能使用

全局变量能过被其他源文件内部使用,是因为全局变量具有外部链接属性

但是被static关键字修饰后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量

函数也是一样的情况

add.c

static int year = 2022;//声明全局变量

test.c(运行报错)

#include <stdio.h>
extern int year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
printf("%d", year);//会报错
return 0;
}

最新文章

  1. 学用MVC4做网站六后台管理:6.1管理员(续)
  2. RPM包管理命令rpm
  3. 深入研究C语言 第四篇
  4. Jmeter教程索引贴
  5. SQL各种语句、函数
  6. npm换源
  7. EL表达式 (详解)
  8. ansible 配置运行环境
  9. GLFW is an Open Source, multi-platform library for OpenGL
  10. 【转】用 SVN Importer 实现 CSVNT 到 SVN 的转换
  11. iOS中UIKit——UIFont得到iOS设备上的系统字体
  12. IOS基础——IOS学习路线图(一)
  13. Centos7搭建集中式日志系统
  14. 测试最新的log4cplus1.1.2版
  15. JavaScript split()
  16. 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置
  17. 代码的未来读书笔记&amp;lt;二&amp;gt;
  18. OPENCV基本滤波算法
  19. Mybatis jpa mini 代码解析
  20. SpringMVC 异常的处理

热门文章

  1. 中断ISR技术架构
  2. 前端知识点(js部分)
  3. .net gRPC初探 - 从一个简单的Demo中了解并学习gRPC
  4. 学习Java Day18
  5. 【Raspberry Pi / 树莓派】小小工控机担起大大责任
  6. RabbitMQ 延迟消息实战
  7. 三分钟使用chatGPT
  8. IP地址后面/24/26/27/28/29/30网关数量分别是多少?如何计算?
  9. 基于Docker使用CTB生成地形切片并加载
  10. LeetCode-2043 两数相加题解