在 C 中将函数设为静态有什么意义?
制作一个函数static会将其隐藏在其他翻译单元之外,这有助于提供封装。
static
helper_file.c
int f1(int); /* prototype */ static int f2(int); /* prototype */ int f1(int foo) { return f2(foo); /* ok, f2 is in the same translation unit */ /* (basically same .c file) as f1 */ } int f2(int foo) { return 42 + foo; }
主.c :
int f1(int); /* prototype */ int f2(int); /* prototype */ int main(void) { f1(10); /* ok, f1 is visible to the linker */ f2(12); /* nope, f2 is not visible to the linker */ return 0; }