LINUX.ORG.RU

Это фича gcc и других кто под gcc мимикрирует (другие я не проверял). В обычном Си нет вложенных функций. А нужно это для частных случаев, разбить большую функцию на мелкие, но так чтобы они вообще небыли видны из вне. Переопределить другую функцию избежав коллизии имён и прочие довольно специфические случаи для использования которые можно обойти и без этой штучки дрючки.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от nionio35

Вопрос стиля.

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

Возможно он хочет, чтобы в каждой функции было явно видно, какие другие функции она использует. Что-то вроде самодокументации, контролируемой компилятором.

cdslow ★★
()
Ответ на: комментарий от nionio35

Ааа, там чисто объявления, я думал и реализация тоже имелась в виду. Ну…. видимо он не любит использовать заголовочные файлы и всё такое. То есть я так понимаю у чела объявление всего ровно перед использованием. Тут причины скорее всего чисто личные, нравится ему так и всё. Никакого особого смысла так делать нет по моему.

А ты возьми да в issue напрямую спроси, почему мол так вот так вот и всё =)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Хочу себе взять, это файл fft(mayer/ooura), там сверху интерфейс к puredata, потом документация, и собственно fft ooura. Теперь все понятнее стало. Сначало было необычное что-то.

nionio35
() автор топика

Зачем делают объявление функций внутри функции, яп си. Например:

простейший юз-кейс - дальнейшие вызовы qsort, bsearch..вместо анонимных функций; и прочие локальные callback. Анонимных функций нет, но есть локальные которые к тому захватывают часть скопа и синтаксис у них проще. В принципе удобно, но поздно и не прижилось.

только ради такого и делалось - чтобы локальные колбеки не выносить вверх.

MKuznetsov ★★★★★
()