我知道它基本但我不熟悉C而且我无法理解这个主题的答案。
在C
文件中我有这个功能:
void uart_event_handle(app_uart_evt_t * p_event)
{
}
static void uart_init(void)
{
}
void initialize()
{
uart_init();
}
静态函数uart_init()
在一些示例程序main.c
中,我试图把它放在另一个C文件(这个)中
只有在我致电:uart_init();
时才会发生错误。否则就不会发生。
答案 0 :(得分:0)
声明函数static
使其在翻译单元外部不可见。这类似于在类中声明私有字段,因为static
"隐藏"所有其他文件的功能。
这使您可以在其他文件中定义具有相同名称的新函数,而无需担心名称冲突。同时,static
使得无法从定义它的.c文件外部调用该函数。
您的示例提供了一个用于创建静态函数的用例:initialize
成为" public"的一部分。该库的界面,而uart_init
仍然隐藏。