static关键字 weak关键字

Posted qq2962269558

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了static关键字 weak关键字相关的知识,希望对你有一定的参考价值。

1、static关键字

static HAL_StatusTypeDef UART_Receive_IT(UART_HandleTypeDef *huart)
{
  ...
}

在函数前面加了一个static关键字,则该工程的其他文件中不能调用此函数,此函数只能在本文件中被调用。

 

2、weak关键字

/**
  * @brief  Rx Transfer completed callbacks.
  * @param  huart  Pointer to a UART_HandleTypeDef structure that contains
  *                the configuration information for the specified UART module.
  * @retval None
  */
__weak void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
  /* Prevent unused argument(s) compilation warning */
  UNUSED(huart);
  /* NOTE: This function should not be modified, when the callback is needed,
           the HAL_UART_RxCpltCallback could be implemented in the user file
   */
}

1)这是串口接收中断的一个钩子函数,可以看出这个函数并没有执行什么实质性操作,而只是为了语法不报错。

2)此时用户可以在用户文件中重新定义HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)函数,编译时不会报重定义错误

3)程序在运行的过程中执行的是用户定义的函数。

 

以上是关于static关键字 weak关键字的主要内容,如果未能解决你的问题,请参考以下文章

strong ,weak,copy关键字使用,及weak跟assign区别

Keil> 编译器特有的功能 > 关键字和运算符 > __weak

Objective-C基础之_ weak, _ strong , __ block

iOS之深入解析weak关键字的底层原理

Weak关键字介绍

iOS关键词weak和assign的区别