LINUX.ORG.RU

ошибка: static-декларация после неstatic-декларации


0

0

Как в GCC 4 правильно объявлять функции внутри функций, чтобы их можно было вызывать до тела функции?

Например, такая программа:

int main(){

print1();

  void print1(){
    printf( "1\n" );
  }

}
компилироваться, естественно, не будет.

Если объявить print1 до тела main, всё нормально компилируется и работает. А можно ли объявить print1 внутри main до первого вызова print1?

Вот на такую программу:

int main(){

void print1();

print1();

  void print1(){
    printf( "1\n" );
  };

}
компилятор ругается:
test.c: В функции ‘main’:
test.c:9: ошибка: static-декларация ‘print1’ после неstatic-декларации
test.c:5: ошибка: здесь была предыдущая декларация ‘print1’

Что он имеет в виду? Как правильно объявить print1?

★★★★★

Ответ на: комментарий от www_linux_org_ru

5.4. Nested Functions. Если б не знал, что оно там есть не нашёл бы :)

question4 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.