对于静态函数,我总是将static
关键字放在源文件开头的函数原型前面,同时将其从实现中省略。
所以说我有这样的事情:
#include <stdio.h>
static int foo(int bar);
int main(void) {
return foo(2);
}
int foo(int bar) {
printf("%d\n", bar);
return 0;
}
我没有技术理由这样做,我只是认为所有必要的“元信息”都属于原型,而实现代码则是......好吧,实现。我知道它有效,但我想知道:
更好的做法是在原型和的实现前面声明static
,还是按照上面的说明做好?
inline
相同。
答案 0 :(得分:1)
原型应该对该函数进行原型设计,因此它应该包含实现所做的一切。
如果您稍后错过将其添加到实现中,并且编译器知道它所暗示的原型。
但是,为了避免人类读者的误解,也将其添加到实施中。
答案 1 :(得分:-1)
我建议该定义和声明应该相同。如果函数不匹配,会有一些编译器会出错!您的代码将无法在comppilers之间移植