【问题标题】:Is it good practice to define a function on a code file, but not declare it on the header? [duplicate]在代码文件上定义函数但不在标题上声明它是一种好习惯吗? [复制]
【发布时间】:2020-10-23 20:59:35
【问题描述】:

我想做的是在我的 .c 文件中有一个辅助函数,该函数只能在文件中的另一个函数中使用,并且在特定情况之外没有用处。因此,包含它的界面并没有多大用处,但我只是想知道这是否可能和/或一种好的做法,以及是否有更优雅的替代方案。

【问题讨论】:

  • 是的,就是这样!

标签: c function header-files


【解决方案1】:

通过不在头文件中声明函数,您只是省略了有关函数的信息,而不是函数的可见性。

声明它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,如果你尝试使用它,链接器会报错。

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 2021-10-30
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多