我在头文件中声明一个静态函数,并在。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);