xinyuan123 发表于 2018-11-28 19:40:18

typedef声明的uint8_t类型出现重复定义

为了方便程序开发,总是会将unsigned char 声明为 typedef unsigned char uint8_t
但是在导入到某个模块后,编译出现了类型的重复定义,如下图所示:

XTXB 发表于 2018-11-28 19:57:43

看看头文件中是不是已经定义了,就像这样类似的

wudicgi 发表于 2018-11-28 20:06:28

警告信息不是告诉你去看 Common.h 的第 6 行了吗
如果你要用 stdint.h, 就考虑把 Common.h 中自己的定义的去掉,改为在 Common.h 中写 #include <stdint.h>

xinyuan123 发表于 2018-11-28 21:41:57

wudicgi 发表于 2018-11-28 20:06
警告信息不是告诉你去看 Common.h 的第 6 行了吗
如果你要用 stdint.h, 就考虑把 Common.h 中自己的定义的 ...

我的是将stdin.h中的内容拷贝在Common.h中,而去掉了stdin.h,但是在每个模块中使用Common.h后还是出现了相同的问题

xinyuan123 发表于 2018-11-28 21:47:17

XTXB 发表于 2018-11-28 19:57
看看头文件中是不是已经定义了,就像这样类似的

在模块的.c文件中添加Common.h没有问题,但是在模块的.h文件中添加了Common.h就出现了问题

wudicgi 发表于 2018-11-28 21:50:26

xinyuan123 发表于 2018-11-28 21:47
在模块的.c文件中添加Common.h没有问题,但是在模块的.h文件中添加了Common.h就出现了问题 ...

你的 Common.h 不会没加 include guard 吧? (#ifndef ... #endif)
LZ 位贴出来的信息太少,问题还是得你本地去找,肯定是有重定义的问题

xinyuan123 发表于 2018-11-28 23:10:22

wudicgi 发表于 2018-11-28 21:50
你的 Common.h 不会没加 include guard 吧? (#ifndef ... #endif)
LZ 位贴出来的信息太少,问题还是得你 ...

谢谢大拿指导,问题已解决:)
页: [1]
查看完整版本: typedef声明的uint8_t类型出现重复定义