Объявление функции в c программировании - PullRequest
3 голосов
/ 22 октября 2011

Если прототип функции (скажем, a ()) объявлен внутри функции (скажем, main ()), означает ли это, что его нельзя использовать в функциях, отличных от функции main ()?

Ответы [ 3 ]

3 голосов
/ 22 октября 2011

Нет, это не значит, что. Если другие функции также объявляют это, то эта функция может использоваться и этими другими функциями.

int main(void) {
  void f(void); 
  f();
}

void g(void) {
  void f(void);
  f();
}

В этом примере main объявил функцию f локально и вызвал ее. Но g тоже делает то же самое. Оба объявления ссылаются на одну и ту же функцию.

0 голосов
/ 22 октября 2011

В общем, вещи, которые вы можете объявить внутри функции (например, переменные), используются только для этой функции.

0 голосов
/ 22 октября 2011

Да, это правильно.Это верно для всех объявлений в рамках определенной области.Они доступны только в пределах определяемой области.

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

...