前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >头文件为什么不能定义变量

头文件为什么不能定义变量

作者头像
用户9736681
发布2022-05-11 08:26:18
1.1K0
发布2022-05-11 08:26:18
举报
文章被收录于专栏:嵌入式随笔

在头文件里使用

代码语言:javascript
复制
#ifndef 
#define 
#endif

可以避免重复定义,可是如果在其中定义变量向下面这样

代码语言:javascript
复制
#ifndef _TEST_H
#define _TEST_H
int a;
#endif

如果有多个文件引用了这个头文件的话就会提示重复定义。

这是因为编译器需要经过预处理、编译、汇编、连接才可以生成可执行程序,在编译器执行链接这一步骤时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。

但是如果需要使用的全局变量较多的话,放在主文件前面显得比较臃肿,如果想使用这些全局变量有不想使用大量的extern的话,可以单独建一个.c文件,将需要的变量放入其中,然后建一个头文件(.h文件)在所有的变量声明前加上extern。注意extern只是一个声明,在这句声明的语句中不要初始化赋值。然后在需要调用这些变量的文件中声明调用这个.h文件就可以了。这样就可以达到目的了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档