我想将大于 (>) 和小于 (<) 运算符作为参数传递给函数,这怎么可能..有没有办法将这些运算符作为参数传递..请任何人帮助我。
最佳答案
你可以用宏做一些可怕的事情,但一般来说,不,你不能这样做。您通常接受一个双参数函数并调用它,该函数可以使用 >
或 <
酌情参见the sort
docs举个例子。
也就是说,它不是非常高效(通过指针调用函数不能被内联,并且对于像 >
或 <
比较这样的廉价操作,函数调用开销超过了比较工作)。使其高效需要:
- 代码的多份副本,每个可能的运算符一份(可能通过宏生成)
- 转向 C++ 并使用带有可正确内联的仿函数/lambda 的模板代码
关于c - 将运算符作为参数传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41734112/