我的解决方案是:
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)