【问题标题】:static function in header file头文件中的静态函数
【发布时间】:2021-11-29 00:31:51
【问题描述】:

我在头文件中声明一个静态函数并在 .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 function static


    【解决方案1】:

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

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

    如果你的SetLEDPort2Output函数没有特殊的原因是static,你可以正常声明和定义它:

    void SetLEDPort2Output(void);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 2012-04-05
      • 2012-03-14
      • 2011-06-29
      • 2011-04-26
      • 2019-10-15
      相关资源
      最近更新 更多