智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6008|回复: 23
打印 上一主题 下一主题

【图】声明定义【外部】结构体,格式是什么- -。

  [复制链接]

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
跳转到指定楼层
1#
发表于 2014-5-11 11:44:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


一个自己的.C对应一个.H 两个文件。
普通的全局变量
在.C里定义 在.H里面 申明加个extern就能在别的.C里面调用了。但是现在想对结构体做同样的处理,不知道具体格式,尝试各种放法总是提示错误= =求大神解答一下 如何 声明定义全局的结构体变量?

我的.C里定义的结构体



我的.H里声明的结构体变量



但是 总是提示.C里面 定义 那里的一个错误:


= =。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

6

主题

618

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6491
威望
3362
贡献
527
兑换币
2332
注册时间
2013-8-31
在线时间
1301 小时
2#
发表于 2014-5-11 11:56:11 | 只看该作者
typedef struct PID      
{
        float vi_Set;            //速度 PID,速度设定值   
        float vi_PreError;       //速度 PID,前一次,速度误差,,vi_Ref - vi_FeedBack
        float vi_PreDerror;      //速度 PID,前一次,速度误差之差, d_error-PreDerror;
        float v_Kp;             //速度 PID,Ka = Kp
        float v_Ki;             //速度 PID,Kb = Kp * ( T / Ti )
        float v_Kd;            //速度 PID,
        float Out;             //电机控制输出值
        //float I;
        float I_Max;
        float v_Max;
        float v_Min;
}PID;
extern PID sPID;这是。H文件里的
回复 支持 反对

使用道具 举报

137

主题

4169

帖子

1

精华

杰出人士

我认为最省轮子的跑法最快。曾经的西科4队

Rank: 12Rank: 12Rank: 12

积分
14006
QQ
威望
6233
贡献
1229
兑换币
4171
注册时间
2013-1-10
在线时间
3272 小时
3#
发表于 2014-5-11 12:07:21 | 只看该作者
同求……我到现在都用不好结构体,我简直就是战5渣……(>﹏<)
回复 支持 反对

使用道具 举报

3

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2494
威望
1216
贡献
730
兑换币
778
注册时间
2013-11-27
在线时间
274 小时
4#
发表于 2014-5-11 12:12:26 | 只看该作者
同求  
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
5#
 楼主| 发表于 2014-5-11 12:24:32 | 只看该作者
allenanswerzq 发表于 2014-5-11 11:56
typedef struct PID      
{
        float vi_Set;            //速度 PID,速度设定值   

谢谢,但是你的我有些不明白  你在.H里面 sPID  是什么= =。
回复 支持 反对

使用道具 举报

6

主题

618

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6491
威望
3362
贡献
527
兑换币
2332
注册时间
2013-8-31
在线时间
1301 小时
6#
发表于 2014-5-11 12:25:40 | 只看该作者
PID sPID;这是。c文件里的声明。看看typedef的用法你就明白了。
回复 支持 反对

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28415

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10438
贡献
11683
兑换币
4724
注册时间
2009-9-7
在线时间
3147 小时
7#
发表于 2014-5-11 12:30:09 | 只看该作者
重复定义,且类型不同。可以按2楼的方法,先声明结构体,再声明外部定义变量,然后在外部定义结构体变量。
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
8#
 楼主| 发表于 2014-5-11 12:53:30 | 只看该作者
凌心 发表于 2014-5-11 12:30
重复定义,且类型不同。可以按2楼的方法,先声明结构体,再声明外部定义变量,然后在外部定义结构体变量。

谢谢,按照你说的解决了! 原来结构体需要用typedef 才可以外部使用= =没变量那么简单么。
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
9#
 楼主| 发表于 2014-5-11 12:55:34 | 只看该作者
allenanswerzq 发表于 2014-5-11 11:56
typedef struct PID      
{
        float vi_Set;            //速度 PID,速度设定值   

谢谢 改好了PS:你的程序里面:
typedef struct PID      
{
        float vi_Set;            //速度 PID,速度设定值   
        float vi_PreError;       //速度 PID,前一次,速度误差,,vi_Ref - vi_FeedBack
        float vi_PreDerror;      //速度 PID,前一次,速度误差之差, d_error-PreDerror;
        float v_Kp;             //速度 PID,Ka = Kp
        float v_Ki;             //速度 PID,Kb = Kp * ( T / Ti )
        float v_Kd;            //速度 PID,
        float Out;             //电机控制输出值
        //float I;
        float I_Max;
        float v_Max;
        float v_Min;
}PID;

struct 后面那个 PID 完全可以不用写。
回复 支持 反对

使用道具 举报

165

主题

4119

帖子

2

精华

杰出人士

老司机【呆萌侠】

Rank: 12Rank: 12Rank: 12

积分
16895

活跃会员奖章优秀会员奖章推广达人奖章热心会员奖章论坛元老奖章论坛骨干奖章在线王奖章资源大师奖章

QQ
威望
9751
贡献
4562
兑换币
1629
注册时间
2011-7-23
在线时间
1291 小时
毕业学校
工大
10#
 楼主| 发表于 2014-5-11 12:55:48 | 只看该作者
Jyoun 发表于 2014-5-11 12:07
同求……我到现在都用不好结构体,我简直就是战5渣……(>﹏

解决了,后面有大神回复= =。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 12:14 , Processed in 0.164561 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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