智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2436|回复: 4
打印 上一主题 下一主题

[软件类] 咨询一下,关于全局变量在模块中的定义问题。

[复制链接]

14

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
497
QQ
威望
366
贡献
99
兑换币
50
注册时间
2011-11-1
在线时间
16 小时
跳转到指定楼层
1#
发表于 2012-9-26 10:00:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
比如:我在 mian.h
#ifndef _MAIN_H
#define _MAIN_H
extern a;
#endif


可是,我在其他模块中定义时只能定义为int;
比如 模块X.c
#include "main.h"
int a;

这样就编译正确,一旦我 定义 unsigned int a ;或者 float a ;
就会出现 一个警告 内容大概为:Incompatible typr to previous declaration (found 'unsigned int  ', expected 'int')

这是为什么?需要unsigned int(16) ,因为它比 int(15+1) 大两倍。

14

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
497
QQ
威望
366
贡献
99
兑换币
50
注册时间
2011-11-1
在线时间
16 小时
2#
 楼主| 发表于 2012-9-26 10:05:59 | 只看该作者
忘了,是这样写:
这是main.h
#ifndef _MAIN_H
#define _MAIN_H
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include "X.h"
extern a;
#endif
这是X.h
#ifndef _X_H
#define _X_H
#endif
这是X.c
#include :"main.h"
int a;

希望大神们看看。
回复

使用道具 举报

14

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
497
QQ
威望
366
贡献
99
兑换币
50
注册时间
2011-11-1
在线时间
16 小时
3#
 楼主| 发表于 2012-9-26 10:07:05 | 只看该作者
#include :"main.h"
int a;

。。。。。。。又手误。。
没有:
回复

使用道具 举报

0

主题

10

帖子

0

精华

注册会员

Rank: 2

积分
95
威望
46
贡献
39
兑换币
18
注册时间
2013-2-26
在线时间
5 小时
毕业学校
北京邮电大学
4#
发表于 2013-3-1 21:45:17 | 只看该作者
也有类似的问题 C1019
回复

使用道具 举报

18

主题

694

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8526

活跃会员奖章优秀会员奖章

威望
4770
贡献
1202
兑换币
2431
注册时间
2013-5-15
在线时间
1277 小时
5#
发表于 2014-2-11 14:07:19 | 只看该作者
C1019: Incompatible type to previous declaration   不解..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 17:35 , Processed in 0.157760 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表