与えられたint
が特定の範囲内にあるかどうかをチェックする関数を返す関数を作成したいと思います。 したがって、返される関数は、1つのパラメータ、int
を取り、bool
を返します。これは、返された関数が別の関数への関数ポインタとして渡されるときに必要です。これまでのところ私はこのようにそれを行うことができるだろう:関数内で関数を作成して返しますか?
bool valueIsInBounds(int value) { return value >= 0 && value <= 100; }
int main() {
functionThatTakesAFunction(&valueIsInBounds);
}
0
と100
は明らかに、固定値であり、私はそれを変更したいと思います。私が行うことができるようにしたいと思い何
は次のようなものです:
??? functionGenerator(int min, int max) { ??? }
int main() {
functionThatTakesAFunction(&(functionGenerator(0, 100)));
}
私は、これはC.
それはC.機能でなんとかではありませんが、実行時に動的に作成することはできません。 –
ファーストクラスのファンクタを実装するためには、ファーストクラスのファンクタを実装するための精巧な機械を除いて、これをC言語で書くことはできません。 – Quentin
一般的な説明は、 http://stackoverflow.com/questions/840501/で見つけることができます。どのように機能するポインタをC言語の作業 – coffeemakr