打印
[STM32F4]

如何定义一个变量在多个。c文件中调用

[复制链接]
5458|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eyesmall|  楼主 | 2015-3-6 00:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想定义一个状态标志位    在同一工程中的多个。c文件中被调用   正确的方法怎么弄   。我看到有人这样用,一个标志位在main函数和一个中断函数中各出现一次,两个函数在不同的.c文件中。他在main外面定义一个外部变量 external char t1flag    然后又在中断函数外面如此定义 char t1fla=1    编译没有问题  。我如法**制  只是我的标志位参数在3个.c文件中用到    编译之后显示 重复定义   不明就里              求标准定义方法 ,如何规避重定义错误 .   
沙发
ticomi| | 2015-3-6 07:52 | 只看该作者
在A.c文件定义 int x = 1;
在其它任何文件使用时需要extern int x;

这样即可,使用extern时不要对变量进行赋值!

使用特权

评论回复
板凳
mmuuss586| | 2015-3-6 12:24 | 只看该作者

楼上正解;

使用特权

评论回复
地板
强仔00001| | 2015-3-6 22:07 | 只看该作者
在你原来的c文件声明,然后在再在该c文件的头文件外部声明。
如:ad.c中:int i;
在  ad.h中:extern int i;
记住外部声明时不要初始化,否则编译器会报错:extern int i = 0像这种格式是不对的;

使用特权

评论回复
5
小班儿| | 2015-3-7 09:51 | 只看该作者
二楼正解

使用特权

评论回复
6
小班儿| | 2015-3-7 09:51 | 只看该作者
百度下,很容易做

使用特权

评论回复
7
eyesmall|  楼主 | 2015-3-8 22:27 | 只看该作者
谢谢大家的热心帮助  对extern 关键字理解错误导致错误出现 已解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

145

帖子

0

粉丝