这可能是一个相当不寻常的问题(我敢肯定这个标题很有误导性),但是在 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
如果一些糟糕的巫术可以让这发生,我会很高兴......