これはかなり珍しい質問かもしれません (タイトルがかなり誤解を招くと思います) が、C/Objective c では、署名を変更せずに実際の関数呼び出しを別の関数に渡すことは何とか可能ですか? 変数の値を取得しようとすると、関数が呼び出されるということですか? (私は関数ポインターを試しましたが、もちろん、これには署名を変更する必要があります)..
理解を深めるために、私が達成したいことの(架空の)例を次に示します。(foo はプライベート API と見なす必要があることに注意してください)
int foo(double a) {
print(a);
print(a);
print(a);
}
double globalCount = 1.0;
double count() {
return globalCount++;
}
int main() {
foo(globalCount()); // I know this syntax would evaluate globalCount() first...
}
期待される出力:
1
2
3
悪いブードゥー教がこれを実現できたら、私は本当にうれしいです...