欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3943|回復: 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
我該怎么改呢

回復

使用道具 舉報

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文件,在里面定義
回復

使用道具 舉報

ID:285194 發表于 2019-5-20 08:45 | 顯示全部樓層
只需要定義一個,然后另外一個.c文件包含定義的那個.h文件,就可以使用里面宏定義的東西了
回復

使用道具 舉報

ID:424598 發表于 2019-5-20 09:11 來自觸屏版 | 顯示全部樓層
放在一個公共的.h
回復

使用道具 舉報

ID:531175 發表于 2019-5-20 12:33 | 顯示全部樓層
774559006 發表于 2019-5-20 08:45
只需要定義一個,然后另外一個.c文件包含定義的那個.h文件,就可以使用里面宏定義的東西了

好嘞,謝謝
回復

使用道具 舉報

ID:531175 發表于 2019-5-20 12:34 | 顯示全部樓層
ssk7793 發表于 2019-5-20 09:11
放在一個公共的.h

好嘞,謝謝你
回復

使用道具 舉報

ID:511890 發表于 2019-5-20 14:19 | 顯示全部樓層
如果你在.c中include了.h,那么頭文件和.C可以理解為是連通的,所有的在一個文件里,都起作用的。如果你在DELAY.C里include了DELAY.h,同時兩個文件里都有typedef  unsigned int uint16: 那么肯定會提示重定義。去掉其中一個就行。如果沒有include,就沒問題。
回復

使用道具 舉報

ID:530977 發表于 2019-5-22 09:36 來自觸屏版 | 顯示全部樓層
#define   unsigned int uint
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表