我想在 C99 中将运算符作为参数传递。我的解决方案是这样的:
int add(int l, int r)
{
return l + r;
}
int sub(int l, int r)
{
return l - r;
}
// ... long list of operator functions
int perform(int (*f)(int, int), int left, int right)
{
return f(left, right);
}
int main(void)
{
int a = perform(&add, 3, 2);
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以做到?我不想为每个运算符编写一个函数。
它可能看起来像这样:
int a = perform(something_cool_here, 3, 2);