Поиск значения / толкования слов

Раздел очень прост в использовании. В предложенное поле достаточно ввести нужное слово, и мы вам выдадим список его значений. Хочется отметить, что наш сайт предоставляет данные из разных источников – энциклопедического, толкового, словообразовательного словарей. Также здесь можно познакомиться с примерами употребления введенного вами слова.

Википедия

Блоки (расширение языка Си)

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

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

«Блоки» похожи на функции :

  • могут принимать аргументы и возвращать значения;
  • могут иметь локальные переменные ;
  • могут вызываться, как и обычные функции;
  • имеют адреса, которые могут использоваться как обычные указатели на функцию .

В отличие от функций:

  • внутри «блоков» могут использоваться переменные, доступные функции, внутри которой создавался «блок».

Для работы с блоками компилятор генерирует дополнительный код. В процессе выполнения программы для каждого создаваемого блока этот код создаёт скрытый объект. Объект содержит следующие поля:

  • ссылка на код блока;
  • значения локальных переменных, доступных функции, внутри которой блок был создан.

Чтобы сообщить компилятору о том, что в переменной будет храниться адрес «блока» следует использовать особое ключевое слово. Ключевое слово не требуется, если «блок» и переменная находятся в одной области видимости .