Интернет магазин китайских планшетных компьютеров



Компьютеры - Блоки (расширение языка Си)

16 февраля 2011


Оглавление:
1. Блоки (расширение языка Си)
2. Пример



Блоки — это добавленное Apple нестандартное расширение языков программирования C/C++/Objective-C, которое использует лямбда-подобный синтаксис для создания замыканий.

Apple создала блоки для облегчения написания приложений для платформы Grand Central Dispatch, но блоки могут использоваться и вне контекста данной платформы так же, как используются замыкания в других языках программирования. Apple реализовала блоки в собственной ветке компилятора GCC. Языковая поддержка выполнения блоков также доступна как часть проекта LLVM.

Как и функции, блоки могут принимать аргументы и определять собственные локальные переменные. Но в отличие от обычных функций, значения переменных в блоке могут устанавливаться из окружающего констекста. Определение блока создает скрытый объект, который содержит ссылку на код блока и «снимок» локальных переменных текущего окружения во время его выполнения. Позже блок может быть вызван так же, как и обычная функция. Блок может быть присвоен переменной, передан функции и ведет себя как обычный указатель на функцию, правда прикладной программист должен пометить блок специальным оператором, если он использует его вне области видимости, где был определен данный блок.

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



Просмотров: 1692


<<< Zeroconf
Док (программа) >>>