我得到了"未知类型名称'uint8_t'",其他人喜欢在MinGW中使用C语言.任何想法如何解决这个问题?
编辑:
要清楚:如果您#include的顺序很重要,并且不是设计模式的一部分(请阅读:您不知道为什么),那么您需要重新考虑您的设计。最有可能的是,这仅意味着您需要将#include头文件添加到导致问题的头文件中。
在这一点上,我对讨论/捍卫该示例的优点并不感兴趣,但由于它说明了编译过程中的一些细微差别以及它们为什么导致错误的原因,因此将其保留下来。
结束编辑
你需要#include的stdint.h在你#include需要它的任何其他库接口。
例:
我的LCD库使用uint8_t类型。我用接口(Display.h)和实现(Display.c)编写了我的库
在display.c中,我具有以下内容。
#include <stdint.h>
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
Run Code Online (Sandbox Code Playgroud)
这可行。
但是,如果我这样重新排列它们:
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
#include <stdint.h>
Run Code Online (Sandbox Code Playgroud)
我得到您描述的错误。这是因为Display.h需要信息,stdint.h但无法访问它,因为该信息是在Display.h编译后编译的。
因此,将其移到stdint.h需要它的任何库之上,您就不会再收到该错误。
| 归档时间: |
|
| 查看次数: |
173418 次 |
| 最近记录: |