我发现了一些让我有点好奇的代码:有一个头文件,它只声明了用C编写的嵌入式系统的代码中使用的 struct .
以下是标题中的代码示例:
#ifdef _structures_h_
extern struct{
uint16_t State_ON;
uint16_t State_OFF;
uint16_t State_HI;
uint16_t Counter;
}Switch;
#endif
#ifndef _structures_h_
#define _structures_h_
struct{
uint16_t State_ON;
uint16_t State_OFF;
uint16_t State_HI;
uint16_t Counter;
}Switch;
#endif
在使用这些 struct 的源文件中,其中一些文件的包含方式如下所示:
#define _structures_h_
#include "structures.h"
在其他情况下,只包含头文件,如下所示:
#include "structures.h"
-
我的疑问是,是否有某种理由在同一个头文件中以两种方式声明 struct ?
-
在代码中声明与外部相同的 struct 与在头文件管理器中声明相同的 struct 有什么不同或相关影响吗?
这是我第一次发现这样的情况,我无法找到合理的解释来使用这一点.