2015-11-01 2 views
0

in C Я пишу некоторые из моих первых упражнений. Раньше я пытался объявить простую функцию внутри main, и она приходит с ошибкой: «определение функции здесь запрещено». Но я думал, что функция может быть объявлена ​​внутри основного или внешнего, единственная разница - это область? Я также читал здесь, что другие люди пишут функции внутри основного, так почему бы мне не позволить мне это сделать? благодаряОбъявление функции?

+0

Вы должны показать свой код, иначе никто не сможет вам помочь. Но обратите внимание, что в C вы не можете * определить * функцию внутри другой. – Renzo

+0

http://stackoverflow.com/questions/957592/functions-inside-functions-in-c – Rob

+0

Может быть, вместо этого использовать Pascal? :) –

ответ

3

Вы можете объявить функцию внутри другой функции:

int main(void) { 
    int foo(int); // declaration 
    ... 
} 

Но вы не можете определить функцию внутри другой функции:

int main(void) { 
    // Doesn't work. 
    int foo(int x) { 
     return x * 2; 
    } 
    ... 
} 

Кроме того, объявления функций внутри другие функции - это действительно необычная вещь, и по существу она никогда не нужна.

Смежные вопросы