小编典典

C中的静态函数

all

在 C 中将函数设为静态有什么意义?


阅读 65

收藏
2022-08-15

共1个答案

小编典典

制作一个函数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;
}
2022-08-15