static / inline关键字:在原型和/或实现之前?

时间:2014-05-25 16:14:06

标签: c static

对于静态函数,我总是将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相同。

2 个答案:

答案 0 :(得分:1)

原型应该对该函数进行原型设计,因此它应该包含实现所做的一切。

如果您稍后错过将其添加到实现中,并且编译器知道它所暗示的原型。

但是,为了避免人类读者的误解,也将其添加到实施中。

答案 1 :(得分:-1)

我建议该定义和声明应该相同。如果函数不匹配,会有一些编译器会出错!您的代码将无法在comppilers之间移植