ネストされた関数を使用する場合、GCC はトランポリン コード用の実行可能スタックを必要とすることがわかりました。ただし、次のコードでは、gcc を使用してコンパイルすると、実行可能スタックが表示されません。(スタックが実行可能かどうかを確認するためにexecstackを使用しました)
#include <stdio.h>
#include <unistd.h>
int main()
{
int add( int a, int b)
{
return a + b;
}
return add(2, 3);
}
これが実行可能なスタックにならないのはなぜですか? そして、それが想定されていない場合、実行可能なスタックを提供するコード構造の例を誰かが挙げることができますか?