今日私は聞いたことのないネストされた機能に出くわしました。それはGNU Cの一部ですか?入れ子関数はC標準の一部ですか?
ここに入れ子関数のwikipediaの例があります。
float E(float x)
{
float F(float y)
{
return x + y;
}
return F(3);
}
コードから、ネストされた関数はC++インライン関数のようなものです。だから、入れ子関数のアドレスを取り出すことは可能ですか?
編集:アダムによって与えられた
gccのリンクは、ネストされた関数のコードは、スタック上に動的に作成されていることを述べています。しかし、スタックからどのようにコードを実行しますか?コードセグメントには存在しないはずです。
おかげアダムGCC extensionではありません。それは良い説明だった。 – chappar