为什么我在C文件定义的变量类型,在头文件外部声明会说我那变量的类型没定义?
如图片所示,我在C文件里面定义的变量类型,uint8,uint32等等,在另一个头文件common.h里面定义的宏定义来的,但是在头文件里面声明时却说没定义的类型????...
如图片所示,我在C文件里面定义的变量类型,uint8,uint32等等,在另一个头文件common.h里面定义的宏定义来的,但是在头文件里面声明时却说没定义的类型????
展开
4个回答
展开全部
其实在c语言里,h文件和c文件是没有什么区别的。你的头文件之所以报没有定义的类型错误是因为你的头文件里缺少对uint8的定义。比较正规的修改方法是:
1.将“#include"common.h"”语句写在头文件的开头。2.c文件中去掉“#include"common.h"”加入“#include"motor.h"”。这样对于uint8的定义就会形成common->motor.h->motor.c这样的三层调用结构,这是常规c语言编程中比较正统的宏定义方式。
1.将“#include"common.h"”语句写在头文件的开头。2.c文件中去掉“#include"common.h"”加入“#include"motor.h"”。这样对于uint8的定义就会形成common->motor.h->motor.c这样的三层调用结构,这是常规c语言编程中比较正统的宏定义方式。
展开全部
应该是你的头文件引用路径配置的不对
1 修改头文件引用路径 把motor.h 路径添加进去
2 把 include <motor.h> 改为 "motor.h" ,把此头文件跟c文件放一个路径
1 修改头文件引用路径 把motor.h 路径添加进去
2 把 include <motor.h> 改为 "motor.h" ,把此头文件跟c文件放一个路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-29
展开全部
请使用"motor.h"的方式包含头文件.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你再motor.h里面加上#include common.h
在motor.c里去掉#include common.h
应该就可以了
在motor.c里去掉#include common.h
应该就可以了
更多追问追答
追问
是可以这样,但是总觉得这样会重复包含,之前我是这么做的,但觉得这样不好
追答
你在common.h里面改下。
#ifndef _COMMON_H_
#define _COMMON_H_
#endif
就只会包含一次。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |