Я хочу иметь статическую функцию, которую я объявляю в своем файле .c перед ее определением:
//file a.c version 1
static int foo();
...
static int foo()
{
...
}
Однако, похоже, я могу оставить ключевое слово static
вне определения функции иЯ не получаю предупреждений компилятора ... например,
//file a.c version 2
static int foo();
...
int foo()
{
...
}
Правильно ли я считаю, что эти две формы абсолютно одинаковы?
Если да, то почему допускается такое расхождение и какую форму мне следует использовать?