あなたが示した例では、もう1つ行うことができます。
いくつかのデバイス操作のために実行する必要がある機能の束があるとしましょう。簡単な方法で、すべての関数呼び出しを別のマスター関数に記述して、そのマスター関数を呼び出すことができます。
これを行う別の方法は、すべての関数名を中括弧で囲み、関数ポインターとループを使用してそれぞれを呼び出すことです。それは賢く見えます。それがどのように役立つかはわかりませんが、Linuxカーネルコードで見ました。
ここでのすべての答えに同意します。これとは別に、関数ポインタを使用するという私自身の判断がいくつかあります。
いくつかの複雑な数学計算の例を見てみましょう(フィボナッチの印刷、積分、フーリエXformなど)。
プログラムで何度も使用する関数FX(複雑な数学計算などを実行します)があります。この関数は、さまざまなジョブで使用されます。
プログラムを数か月使用した後、一部の作業では機能を改善でき、一部の作業では現在の機能が最適であることがわかります。あなたは何をしますか?新しい関数を作成し、すべての場所で関数名を変更します。
あなたがより良い何かを見つけるたびに、あなたは同じことをするつもりです。
代わりに、作業ごとに異なる関数ポインタを使用してください。初期段階では、すべてのポインターが1つの関数を指すことができます。いくつかの作業に適した関数を見つけたら、ポインターをそらすだけで完了です。
別のシナリオを考えてみましょう。ここに、携帯電話のOSのような本当の大きなコードがあります。(完全には開いていませんが、半分コンパイルされています)。特定のハードウェア用にBluetoothドライバーを追加する必要があります。
これで、OSで使用できるオプションを追加することも、残すこともできます。
多くの場所からBluetoothをオン/オフにする必要があるかもしれません。
つまり、OSが行うことは、Bluetoothをオンにして、必要な場所で使用する関数ポインターを作成することです。このコードはすでにコンパイルされているため、コードを追加することはできません。しかし、できることは、関数を記述して、そのポインターが関数を指すようにすることです。
これは私がAndroidOSですでに見たものです。(正確ではありませんが、より近くにあります)