ブロック (C言語拡張)
ブロックは入れ子関数を文法的にサポートするためのC言語のGCC拡張に表面的には似ている。しかしながら、ブロックとは違い、GCCの入れ子関数では内部に持ったスコープが終了したあとは呼び出すことができない。
また、GCCスタイルの入れ子関数は入れ子関数のアドレスを取得する際に、実行可能なサンク(Thunk)を動的に生成する必要がある。x86も含めたほとんどのアーキテクチャはこれらのサンクをスタックに生成し、スタックは実行可能に設定する必要がある。実行可能スタックは一般的に潜在的なセキュリティホールと考えられている。ブロックは実行可能サンクを必要としないため、この弱点を持たない。