Re: Определение функции внутри другой функции

Denis Kirjanov kirjanov at gmail.com
Tue Dec 2 06:08:10 EST 2014


On 12/2/14, Alex Naumov <alexander_naumov at opensuse.org> wrote:
> Я работаю с gcc 4.8.1 на x86_64. Мне, в принципе, больше ничего и не надо,
> т.е. код пишу для себя.
>
> Дело даже не в том, на сколько это полезно и в каких случаях. Мне просто
> интересно какие могут быть проблемы в данном случае. Стоит ли быть тревогу,
> если встречается такой код?
> Вот Андрей написал о проблеме переноса кода на другие архитектуры. Это да.
> Код всегда нужно тестировать при переносе. Но может быть есть проблемы,
> которые можно встретить в данном случае с 100% вероятностью?

Я думаю никто не скажет на сколько безопасно или нет. Надо брать и
пробовать разные компиляторы если интересно этим заниматься
>
> 2014-12-02 11:31 GMT+01:00 Denis Kirjanov <kirjanov at gmail.com>:
>
>> А какие компиляторы ты пробовал?
>>
>> Я просто не понимаю зачем это может быть полезно. Я не видел кода на C
>> который использует nested functions.
>>
>> On 12/2/14, Alex Naumov <alexander_naumov at opensuse.org> wrote:
>> > Мне не совсем понятно значение "do not support" в данном контексте. Это
>> > работет.
>> > Поведение программы не определено, т.е. никогда нельзя знать наверняка
>> как
>> > поведет себя программа в данном случае?
>> >
>> >
>> > 2014-12-02 11:10 GMT+01:00 Denis Kirjanov <kirjanov at gmail.com>:
>> >
>> >> Standard C and C++ do not support nested functions, but:
>> >> GCC supports nested functions in C, as a language extension.[5]
>> >>
>> >> On 12/2/14, Alex Naumov <alexander_naumov at opensuse.org> wrote:
>> >> > Всем привет.
>> >> >
>> >> > У К&R в 4.3 главе написано:
>> >> > "Сами по себе функции - всегда внешние, поскольку в C нельзя
>> определить
>> >> > функцию внутри другой функции."
>> >> >
>> >> > Тем не менее, определить функцию f() внутри тела функции main() и
>> >> > вызвать
>> >> > её можно без проблем. Более того, в главе 4.2 у K&R присутствует
>> >> > такой
>> >> > пример. Кто что думает по поводу объявления функций внутри других
>> >> функций?
>> >> > Какие подводные камни ожидают программиста в этом случае?
>> >> >
>> >> >
>> >> > Alex
>> >> >
>> >>
>> >>
>> >> --
>> >> Regards,
>> >> Denis
>> >>
>> >
>>
>>
>> --
>> Regards,
>> Denis
>>
>


-- 
Regards,
Denis


More information about the Kernel-russian mailing list