我敢肯定这是非常愚蠢的事情,但我很难过:
我在一个标头中声明了一个 typedef 结构:
Firstheader.h
typedef struct Pin
{
uint8_t a;
uint8_t b;
} PinStruct;
然后我想在另一个头文件的函数声明中使用这个 typedef 的结构:
Secondheader.h
#include "Firstheader.h"
void foo (const PinStruct *myPin);
尽管 typedef 的结构在第一个标头中明确定义,并且在第二个标头中包括第一个标头,编译器仍抱怨“标识符 PinStruct 未定义”。有人请打我,告诉我我错过了什么。
编辑:感谢您的评论。编译器将第二个标头中的函数声明标记为错误源。确切的错误就像我写的那样:错误[Pe020]:标识符“PinStruct”未定义。
奇怪的是,如果我将结构定义复制Secondheader.h
到头文件中,编译器会立即遵守结构的重新定义。所以它知道它在那里。