注册 登录
查看: 321|回复: 10

[平衡组] 全局变量的小问题 求帮助

[复制链接]
发表于 2014-12-28 22:50:09 | 显示全部楼层 |阅读模式
我在sudu.h里面定义了一个extern float g_fSpeedControlOut;
然后我在include.h加入了sudu.h,然后我在control.c想用g_fSpeedControlOut这个变量的时候 老是报错说没有定义。我在control.c加入了include。h和也加入了sudu.h,,请问为什么呢??谢谢
回复

使用道具 举报

发表于 2014-12-28 22:51:39 | 显示全部楼层
彭意达 发表于 2014-12-28 22:50
我在sudu.h里面定义了一个extern float g_fSpeedControlOut;
然后我在include.h加入了sudu.h,然后我在con ...

你这根本就不叫定义~~~~叫声明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-28 23:17:47 | 显示全部楼层
仰逸致 发表于 2014-12-28 22:51
你这根本就不叫定义~~~~叫声明

啊!请问有讲关于如何定义全局变量的帖子吗
回复 支持 反对

使用道具 举报

发表于 2014-12-29 08:23:55 | 显示全部楼层
在论坛上搜索下,应该有的
回复 支持 反对

使用道具 举报

发表于 2014-12-29 09:23:36 | 显示全部楼层
在sudu.c里再定义一下就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-29 10:25:23 | 显示全部楼层
Love_Ning 发表于 2014-12-29 09:23
在sudu.c里再定义一下就好了

刚才去智能车哪里看了一下,好像用的.c都要加extern
回复 支持 反对

使用道具 举报

发表于 2014-12-29 10:42:07 | 显示全部楼层
彭意达 发表于 2014-12-29 10:25
刚才去智能车哪里看了一下,好像用的.c都要加extern

不用,在你用到这个变量的.c文件里定义一下,然后在对应的.h文件加上extern,程序运行时先运行include.h,然后运行它里面包含的头文件,里面的变量你声明为extern,但这只是声明,还需要在你包含这个变量的.h文件对应的.c文件定义一下
回复 支持 反对

使用道具 举报

发表于 2014-12-29 10:43:25 | 显示全部楼层
Love_Ning 发表于 2014-12-29 10:42
不用,在你用到这个变量的.c文件里定义一下,然后在对应的.h文件加上extern,程序运行时先运行include.h, ...

第一次用到这个变量的.c文件
回复 支持 反对

使用道具 举报

发表于 2014-12-29 12:26:50 | 显示全部楼层
彭意达 发表于 2014-12-28 23:17
啊!请问有讲关于如何定义全局变量的帖子吗

这个C语言的书本都有讲的。
另外,推荐看山外的书,有个弱引用和强引用。
回复 支持 反对

使用道具 举报

发表于 2014-12-30 07:36:39 来自手机 | 显示全部楼层
extern int 加变量放头文件就能用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-30 12:54:59 | 显示全部楼层
Love_Ning 发表于 2014-12-29 10:42
不用,在你用到这个变量的.c文件里定义一下,然后在对应的.h文件加上extern,程序运行时先运行include.h, ...

谢谢啦,懂了,就是 建好一个头文件,在里面用extern声明,然后在其他.c文件里包含这个头文件,并且定义一次。
回复 支持 反对

使用道具 举报

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

本版积分规则

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