找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3184|回复: 9
打印 上一主题 下一主题
收起左侧

keil4 C语言变量重复定义的问题

[复制链接]
跳转到指定楼层
楼主
ID:531175 发表于 2019-5-19 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在练习模块化编程,现在我有两个.c文件,都要用到 uint16,我在每个.h文件里都写了  typedef  unsigned int uint16;
可是软件报错,
Build target 'Target 1'
compiling LCD设计的秒表.c...
compiling miaob.c...
DELAY.H(4): error C231: 'uint16': redefinition
compiling delay.c...
DELAY.C(4): error C231: 'uint16': redefinition
Target not created
我该怎么改呢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2019-5-20 07:52 | 只看该作者
把错误信息译成你能懂的语言,按照提示去改。
回复

使用道具 举报

板凳
ID:164602 发表于 2019-5-20 08:34 | 只看该作者
错误231,就是重复定义。
你的头文件,应该加上条件编译就没问题了。
就是:
#ifndef
......
#endif
这样,就不会有重复编译的错误
回复

使用道具 举报

地板
ID:527827 发表于 2019-5-20 08:44 | 只看该作者
就写一次

或者提升一级,做成一个公用的.h文件,在里面定义
回复

使用道具 举报

5#
ID:285194 发表于 2019-5-20 08:45 | 只看该作者
只需要定义一个,然后另外一个.c文件包含定义的那个.h文件,就可以使用里面宏定义的东西了
回复

使用道具 举报

6#
ID:424598 发表于 2019-5-20 09:11 来自手机 | 只看该作者
放在一个公共的.h
回复

使用道具 举报

7#
ID:531175 发表于 2019-5-20 12:33 | 只看该作者
774559006 发表于 2019-5-20 08:45
只需要定义一个,然后另外一个.c文件包含定义的那个.h文件,就可以使用里面宏定义的东西了

好嘞,谢谢
回复

使用道具 举报

8#
ID:531175 发表于 2019-5-20 12:34 | 只看该作者
ssk7793 发表于 2019-5-20 09:11
放在一个公共的.h

好嘞,谢谢你
回复

使用道具 举报

9#
ID:511890 发表于 2019-5-20 14:19 | 只看该作者
如果你在.c中include了.h,那么头文件和.C可以理解为是连通的,所有的在一个文件里,都起作用的。如果你在DELAY.C里include了DELAY.h,同时两个文件里都有typedef  unsigned int uint16: 那么肯定会提示重定义。去掉其中一个就行。如果没有include,就没问题。
回复

使用道具 举报

10#
ID:530977 发表于 2019-5-22 09:36 来自手机 | 只看该作者
#define   unsigned int uint
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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