为什么我在C文件定义的变量类型,在头文件外部声明会说我那变量的类型没定义?

如图片所示,我在C文件里面定义的变量类型,uint8,uint32等等,在另一个头文件common.h里面定义的宏定义来的,但是在头文件里面声明时却说没定义的类型????... 如图片所示,我在C文件里面定义的变量类型,uint8,uint32等等,在另一个头文件common.h里面定义的宏定义来的,但是在头文件里面声明时却说没定义的类型???? 展开
 我来答
房子a房子a
推荐于2017-09-12 · TA获得超过2047个赞
知道小有建树答主
回答量:783
采纳率:85%
帮助的人:565万
展开全部
其实在c语言里,h文件和c文件是没有什么区别的。你的头文件之所以报没有定义的类型错误是因为你的头文件里缺少对uint8的定义。比较正规的修改方法是:
1.将“#include"common.h"”语句写在头文件的开头。2.c文件中去掉“#include"common.h"”加入“#include"motor.h"”。这样对于uint8的定义就会形成common->motor.h->motor.c这样的三层调用结构,这是常规c语言编程中比较正统的宏定义方式。
百度网友9cba1dea7
2017-08-29 · TA获得超过271个赞
知道小有建树答主
回答量:313
采纳率:52%
帮助的人:131万
展开全部
应该是你的头文件引用路径配置的不对
1 修改头文件引用路径 把motor.h 路径添加进去
2 把 include <motor.h> 改为 "motor.h" ,把此头文件跟c文件放一个路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-29
展开全部
请使用"motor.h"的方式包含头文件.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小悟喵喵
2017-01-19 · TA获得超过421个赞
知道小有建树答主
回答量:283
采纳率:78%
帮助的人:170万
展开全部
你再motor.h里面加上#include common.h
在motor.c里去掉#include common.h
应该就可以了
更多追问追答
追问
是可以这样,但是总觉得这样会重复包含,之前我是这么做的,但觉得这样不好
追答
你在common.h里面改下。
#ifndef _COMMON_H_
#define _COMMON_H_

#endif
就只会包含一次。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式