c - 使用外部变量与不使用外部变量的区别
问题描述
我对使用“extern”关键字的变量定义和声明有点困惑。假设我想要一个变量'timer'可以在多个c文件中使用。然后我可以:
在 c1.h
int timer;
然后在 c1.c
#include "c1.h"
void timer_increase() {
timer++
}
然后在 c2.c
#include "c1.h"
void print_timer() {
printf("%d", timer);
}
但是,当我使用外部变量时:
在 c1.h
extern int timer;
然后在 c1.c
#include "c1.h"
int timer;
void timer_increase() {
timer++
}
然后在 c2.c
#include "c1.h"
void print_timer() {
printf("%d", timer);
}
两个脚本都可以正常工作,我看不出我必须使用 extern 来声明变量的任何原因。谁能给我任何提示?
解决方案
您必须定义一次变量并在标题中声明它,以便其余文件对变量具有可见性。
当您不在extern
头文件中使用时,每次您在多个文件中定义相同的变量。
推荐阅读
- java - 在 pom.xml 文件中注释“spring-boot-starter-security”后无法启动 tomcat 服务器
- mysql - mysql中通过外键连接的表之间如何映射数据?
- kubernetes - 如何删除ceph osd块?
- reactjs - Reactjs是否有多元素类型声明的快捷方式
- php - 无法让 Xdebug 使用浏览器扩展在 VSCode 上工作
- sql - 使用 Rails 简化查询
- java - 将 AWS lambda 函数打包到不同的 jar 中
- python - 从 python 请求中发送图像
- javascript - 为什么函数打印 i: 6 而不是 i: 5
- spring - Spring批处理多线程方法-链接阅读器或处理器?