Skip to content
EntityQ4088295· pop 6· linked from 14 articles

ブロック (C言語拡張)

Sign in to save

extension to the C programming language designed to support parallel programming

In the Vinony graph

Vinony's link graph records 14 inbound references to ブロック (C言語拡張), and connects out to anonymous function, scope and Apple Inc..

It sits within the topics C (programming language) and Subroutines.

Vinony links it to 6 Wikipedia language editions.

Article · 日本語

ブロック (Blocks) はAppleによるC言語、Objective-C、C++用の非標準の拡張であり、ラムダ式風の構文を用いてクロージャを作成する機能を提供する。ブロックはMac OS X 10.6以降とiOS 4.0以降向けのプログラムでサポートされるが、サードパーティ製ランタイムでMac OS X 10.5及びiOS 2.2以降でも使用可能である。 ブロックは、スレッディングアーキテクチャーをより容易に記述できるようにするという明確な目的でアップルによって設計された一方で、そのアーキテクチャーから独立して他のプログラミング言語のクロージャに類似した方法で使用することもできる。アップルはブロックをGNUコンパイラコレクションの自社のブランチとClang LLVMコンパイラフロントエンドに実装している。ブロックの言語ランタイムライブラリサポートはLLVMプロジェクトの一部で利用可能である。クロノスグループはブロック構文をOpenCLのバージョン2.0よりエンキューカーネルに使用している。 関数定義のように、ブロックは引数を持ち、内部でローカル変数を宣言することができる。一方で通常の関数定義とは違い、値は周囲のコンテキストから状況をとることもできる。ブロック定義はブロック内のコードへの参照及びその定義時のローカルのスタック変数の現在のスナップショットが含まれる不透明な値を生成する。ブロックは関数ポインタと同様に呼び出すことができる。 ブロックは変数に割り当てられたり、関数を越えたり、通常の関数ポインタのように使われるが、ブロックの範囲外で定義されたものを使用する際は特殊な演算子(Block_copy)でマークする必要がある。 ブロック値を与えると、ブロック内のコードは関数を呼び出す際と同じ構文を使用して、任意の時点で実行することができる。

Abstract from DBpedia / Wikipedia · CC BY-SA

Available in 6 languages

via Wikidata sitelinks · CC0

Connections

Categories