【发布时间】:2019-06-03 13:02:15
【问题描述】:
我正在用 c 编写一个库,我希望可以从其他 c 文件中调用一些函数,而有些函数我希望保持私有。
我知道可以通过声明 static 来隐藏库文件之外的函数,但同样可以通过仅声明其实现并将其从标题中删除来实现。
比较:
a.h
//static int private_routine();
int sample();
a.c
/*static*/ int private_routine(){
}
int sample(){
private_routine();
}
哪种做法最好?
【问题讨论】:
-
如果函数是内部的 - 保持内部。
-
如果不是静态的,它仍然会发射到对象中,并且可能与同名对象发生冲突。
-
在标题中声明
static符号是没有意义的。它没有任何好处,只会导致问题。
标签: c static-functions