在任何情况下都可以从源文件中省略函数声明吗?我有一个无法编译的 C 项目,我不知道为什么。据我所知,当编译器(GCC 4.4.1)在'system.h'中找到函数'sysData'的声明时,找不到'sepData'typedef的声明。
来自脓毒症.h
typedef struct {
int16 intensity;
int16 offset;
} sepData;
来自脓毒症.c
sepData sepR, sepIR;
从系统.h
void sysData(sepData *sepR, sepData *sepIR);
来自 system.c
#include "system.h"
#include "sepsis.h"
extern sepData sepR, sepIR;
void sysData(sepData *sepR, sepData *sepIR)
{
}
如果我从“system.h”中删除“sysData”的声明,则项目编译不会出错。我对 C 不太了解,我认为包含这样的声明是强制性的。有谁能够解释这里发生了什么?