Was ist der Unterschied zwischen verschiedenen Arten, eine Funktion als Argument an eine andere Funktion zu übergeben?

Ich habe die Situation, dass eine Funktion eine von mehreren möglichen Funktionen aufruft. Dies scheint ein guter Ort zu sein, um eine Funktion als Parameter zu übergeben. In dieser Quoara-Antwort von Zubkov gibt es drei Möglichkeiten, dies zu tun. int g(int x(int)) { return x(1); } int g(int...