【发布时间】:2020-10-23 20:59:35
【问题描述】:
我想做的是在我的 .c 文件中有一个辅助函数,该函数只能在文件中的另一个函数中使用,并且在特定情况之外没有用处。因此,包含它的界面并没有多大用处,但我只是想知道这是否可能和/或一种好的做法,以及是否有更优雅的替代方案。
【问题讨论】:
-
是的,就是这样!
标签: c function header-files
我想做的是在我的 .c 文件中有一个辅助函数,该函数只能在文件中的另一个函数中使用,并且在特定情况之外没有用处。因此,包含它的界面并没有多大用处,但我只是想知道这是否可能和/或一种好的做法,以及是否有更优雅的替代方案。
【问题讨论】:
标签: c function header-files
通过不在头文件中声明函数,您只是省略了有关函数的信息,而不是函数的可见性。
声明它static(并从头文件中省略)。
// barfoo.h
int bar(void);
//barfoo.c
#include "barfoo.h"
static int foo(void) { return 42; }
int bar(void) { return foo(); }
//main.c
#include "barfoo.h"
int main(void) {
bar();
}
在这个例子中,如果foo() 没有用static 定义,它仍然可以从main() 调用。使用static,如果你尝试使用它,链接器会报错。
【讨论】: