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