打印

extern声明变量时遇到的问题?

[复制链接]
1732|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wll_2012|  楼主 | 2013-6-24 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, ADC, dc, AD, COM
本帖最后由 wll_2012 于 2013-6-24 16:14 编辑

4个文件:
main.c 、adc.c、adc.h、common.h
在adc.h中声明全局变量extern u8 k;
common.h中包含adc.h,adc.c和main.c中分别包含common.h,
这样操作之后全局变量k可以再adc.c和main.c中同时调用,编译时也不会出错,我觉得这样写是会出错的,为什么编译通过了呢?

相关帖子

沙发
板砖横飞| | 2013-6-24 16:38 | 只看该作者
注意使用头文件的条件编译,要不然还是重复定义的。
#ifndef _HEADERNAME_H
#define _HEADERNAME_H
...
#endif

使用特权

评论回复
板凳
wll_2012|  楼主 | 2013-6-24 17:01 | 只看该作者
板砖横飞 发表于 2013-6-24 16:38
注意使用头文件的条件编译,要不然还是重复定义的。
#ifndef _HEADERNAME_H
#define _HEADERNAME_H

什么意思呢?

使用特权

评论回复
地板
原野之狼| | 2013-6-24 17:06 | 只看该作者
你觉得为什么会编译不过呢

使用特权

评论回复
5
wll_2012|  楼主 | 2013-6-25 08:48 | 只看该作者
原野之狼 发表于 2013-6-24 17:06
你觉得为什么会编译不过呢

因为k只是声明了,却没有定义

使用特权

评论回复
6
logokfu| | 2013-6-25 09:05 | 只看该作者
wll_2012 发表于 2013-6-25 08:48  因为k只是声明了,却没有定义

无所谓,到时候即使你引用那个变量的也是空值。如果是函数的话就是没有功能的函数了。

使用特权

评论回复
7
21ID| | 2013-6-25 09:07 | 只看该作者
wll_2012 发表于 2013-6-25 08:48
因为k只是声明了,却没有定义

很有这个可能!

使用特权

评论回复
8
原野之狼| | 2013-6-25 09:24 | 只看该作者
wll_2012 发表于 2013-6-25 08:48
因为k只是声明了,却没有定义

你的代码中没有引用它吧?
如果有引用的话,不报错才叫见鬼了。

使用特权

评论回复
9
wll_2012|  楼主 | 2013-6-25 10:30 | 只看该作者
原野之狼 发表于 2013-6-25 09:24
你的代码中没有引用它吧?
如果有引用的话,不报错才叫见鬼了。

难道我见鬼了!!?

使用特权

评论回复
10
原野之狼| | 2013-6-25 10:36 | 只看该作者
把符号表发出来看看

使用特权

评论回复
11
HORSE7812| | 2013-6-25 14:06 | 只看该作者
扯蛋

使用特权

评论回复
12
wll_2012|  楼主 | 2013-6-25 14:11 | 只看该作者
HORSE7812 发表于 2013-6-25 14:06
扯蛋

:L

使用特权

评论回复
13
Wayner| | 2013-6-25 14:14 | 只看该作者
“声明全局变量extern u8 k;”
既然是声明全局变量,不需要加extern的

使用特权

评论回复
14
wll_2012|  楼主 | 2013-6-25 14:16 | 只看该作者
Wayner 发表于 2013-6-25 14:14
“声明全局变量extern u8 k;”
既然是声明全局变量,不需要加extern的

不加不是定义的吗?

使用特权

评论回复
15
liusensen| | 2013-6-25 15:35 | 只看该作者
wll_2012 发表于 2013-6-25 08:48
因为k只是声明了,却没有定义

:victory:

使用特权

评论回复
16
zhaofy521| | 2013-6-25 17:13 | 只看该作者
extern 是为了混编译器的,编译器不拿它当错误来处理;
要是程序中使用过,应该连接器会报错吧

使用特权

评论回复
17
qingqiu647| | 2013-6-25 17:16 | 只看该作者
只是声明,并没有定义

使用特权

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

本版积分规则

11

主题

96

帖子

0

粉丝