GCCの入れ子関数との関係
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/27 00:28 UTC 版)
「ブロック (C言語拡張)」の記事における「GCCの入れ子関数との関係」の解説
ブロックは入れ子関数を文法的にサポートするためのC言語のGCC拡張に表面的には似ている。しかしながら、ブロックとは違い、GCCの入れ子関数では内部に持ったスコープが終了したあとは呼び出すことができない。 また、GCCスタイルの入れ子関数は入れ子関数のアドレスを取得する際に、実行可能なサンク(Thunk)を動的に生成する必要がある。x86も含めたほとんどのアーキテクチャはこれらのサンクをスタックに生成し、スタックは実行可能に設定する必要がある。実行可能スタックは一般的に潜在的なセキュリティホールと考えられている。ブロックは実行可能サンクを必要としないため、この弱点を持たない。
※この「GCCの入れ子関数との関係」の解説は、「ブロック (C言語拡張)」の解説の一部です。
「GCCの入れ子関数との関係」を含む「ブロック (C言語拡張)」の記事については、「ブロック (C言語拡張)」の概要を参照ください。
- GCCの入れ子関数との関係のページへのリンク