将运算符作为参数传递给C99

将运算符作为参数传递给C99,第1张

概述我想在C99中传递一个运算符作为参数. 我的解决方案是: int add(int l, int r){ return l + r;}int sub(int l, int r){ return l - r;}// ... long list of operator functionsint perform(int (*f)(int, int), int left, 我想在C99中传递一个运算符作为参数.
我的解决方案是:

int add(int l,int r){    return l + r;}int sub(int l,int r){    return l - r;}// ... long List of operator functionsint perform(int (*f)(int,int),int left,int right){    return f(left,right);}int main(voID){    int a = perform(&add,3,2);}

还有其他方法吗?我不想为每个运算符编写一个函数.

它可能看起来像这样:

int a = perform(something_cool_here,2);

解决方法 你可以使用switch / case,例如:

int perform(char op,int a,int b){    switch (op)    {    case '+': return a+b;    case '-': return a-b;    default: return 0;    }}

但是你仍然需要为每个运算符编写一些代码;你没有在C中免费获得任何东西.

总结

以上是内存溢出为你收集整理的将运算符作为参数传递给C99全部内容,希望文章能够帮你解决将运算符作为参数传递给C99所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存