智能车制作
标题:
K60的驱动程序里的变量为什么主程序不可调用??求大神帮忙
[打印本页]
作者:
mc930411
时间:
2013-2-18 03:37
标题:
K60的驱动程序里的变量为什么主程序不可调用??求大神帮忙
最近写滤波程序返回角度值,不知道怎么的不管是定义在include.h还是驱动程序,两边总有一边显示udefined,求大神指导下啊。。
作者:
exiao
时间:
2013-2-18 09:15
局部变量吧
作者:
dapan945
时间:
2013-2-18 09:33
只声明了,没定义
作者:
灰原姐姐
时间:
2013-2-18 10:03
一处定义,多处生明。
还有,include.h 这样的文件名可不太好。
作者:
野火
时间:
2013-2-18 10:26
没声明吧
加上 extern 声明吧
作者:
通联物网
时间:
2013-2-18 16:36
你要看一下,你的编译环境的配置中,有没有将include.h头文件包含进去,只有包含进去以后才能饮用其中定义的变量。
作者:
智能车下载
时间:
2013-2-19 00:17
比如有个模块A,分为A.h和A.C,有一个变量aV需要在B模块里(B.h和B.c)调用,那么(假设A还有一个函数是需要暴露的,比如aVxx(xxx))几个文件大致可以这么写:
A.h:
extern int aV;
extern int aVxx(xxx);
A.c:
include "a.h"
int aV = 0;
//(还有一堆外部不需要的变量,但是是模块级“全局”的,也在这声明(并初始化))
int aVxx(……)
{
……; //aVxx的实现
}
这是A模块的写法,要点是,只要不是A模块需要让别的模块“知道”的,都不写在.h里面,而是只写在.c里面。
在B模块想要用aV这个变量,那么可以这么干:
B.h:
include "a.h" //只要加这个东东,aV这个变量就是赤果果的可见滴了
B.c:
include "b.h"
int bX = 0;
……;
bX = aV; //现在这么做就没问题了
大致就是这样,楼上还有很有爱的灰原姐姐,你可以SM Ta 问问还。此外,还有别的搞法,但是这种对你来说应该比较简单……
(本人提供的解决思路限于本人的水平可能是不完善的,也可能是不可行的,具体还要少年你加油,本人在此免责了,出了问题谁也不许打PP)
作者:
素浪
时间:
2013-2-24 09:33
加上 extern 声明就是全局变量了,就可以了
作者:
xin99
时间:
2013-2-24 19:04
作者:
大表哥
时间:
2013-11-21 21:54
怒赞7楼一个
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2