c - 在代码文件上定义函数但不在标题上声明它是一种好习惯吗?
问题描述
我想要做的是在我的 .c 文件中有一个辅助函数,它只能在文件中的另一个函数中使用,并且在特定情况之外没有用处。因此,包含它的界面并没有多大用处,但我只是想知道这是否可能和/或一个好的做法,以及是否有更优雅的替代方案。
解决方案
通过不在头文件中声明函数,您只是省略了有关函数的信息,而不是函数的可见性。
声明它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
它,链接器会报错。
推荐阅读
- html - 托管在 firebase 托管上的 html 页面上的视频无法在 Safari 上运行
- node.js - How to use multiple andWhere with knex in Node app?
- python - 如何获取 Python 列表的切片以组合连续元素?
- r - 如何在 google-collaboration 上安装 rgdal 和/或上传栅格
- javascript - 如何遍历 JSON 模式并将所有值设置为空字符串?
- excel - 如何在 VBA 的 for 循环中索引 excel 工作表函数的参数?
- html - 如何将文本相对于另一个文本的单个字母居中?
- video - 使用ffmpeg按大小和名称和名称拆分视频文件
- r - Survminer,生存包:“survdiff”对数秩和“常规”对数秩测试有什么区别?
- javascript - 邮递员测试是否填写了所需的输入