Что вы имеете в виду, это особенность GCC , она никогда не была "правильной" функцией C (т.е. частью спецификации ANSI C).
Если вы хотите использовать эту функцию, то я считаю, что вы после этого:
#include <stdio.h>
int a = 20, b = 11;
int main( int argc, char* argv[] )
{
int a = 5, b = 60;
auto int func( void );
printf("\nI am in main-1");
int func( void )
{
printf("\nI am in funct");
return 1;
}
printf("\nI am in main-2");
return func();
}
Причина, по которой ваш предыдущий код не работал, заключается в том, что вложенные функции не имеют связи:
Вложенная функция всегда не имеет связи. Объявление одного с внешним или статическим является ошибочным. Если вам нужно объявить вложенную функцию до ее определения, используйте auto (что в противном случае бессмысленно для объявлений функций).
Приведенный выше пример использует ключевое слово auto
. Я также позволил себе исправить вашу декларацию main
: -)