C语言 头文件中的静态函数



我在头文件中声明一个静态函数,并在。c文件中初始化它但是我得到一个警告说:未使用的函数。

头文件:

static void SetLEDPort2Output(void);

. c文件:

static void SetLEDPort2Output(void)
{
for(int i = 0;i < 7;i++)
{
LEDPort.aGPIO[i]->CRL &= ~(0x0Fu<<(4*LEDPort.aPIN[i]));
LEDPort.aGPIO[i]->CRL |= (0x01<<(4*LEDPort.aPIN[i]));
}
}
void LEDPortIni(void)
{
RCC->APB2ENR |= 0x1<<2;
SetLEDPort2Output();
}

我不知道我错过了什么。

在C语言中,static函数是按编译单元定义的:mean in C?

这意味着包含头文件的每个文件都将拥有该函数声明的副本(可能没有定义,因为您在.c文件中定义了它),并且编译器可能会警告您其中一些副本未被使用。

如果你没有特别的理由让你的SetLEDPort2Output函数是static,你可以正常地声明和定义它:

void SetLEDPort2Output(void);

最新更新