我有一些基本的C++代码(下面包含)。我希望能够用自定义指令代替发生的每个乘法(包括math.h中包含的cos函数)。我可以直接调用我的main中的自定义指令,但是'cos'仍然使用旧的乘法指令。用自定义指令代替每一个乘法
我已经考虑做操作符重载,但我无法正确地使这个功能。
#include <iostream>
#include <string>
#include <math.h>
int main()
{
int a = 2;
int b = 5;
std::cout << "mult: " << a * b << std::endl;
std::cout << "cos: " << cos(b) << std::endl;
return 0;
}
什么是以我想要的方式实现此自定义指令的最佳方法?
我可以问*你为什么要这样做? (PS:我很确定你想要什么是不可能的,操作符重载不会适用于基类型,所以除非你重构整个代码以使用你可以控制的自定义类型......) – Borgleader
NIOSII不支持浮点硬件乘法。我正在引入硬件,并希望加速我的COS计算。我现在有一个自定义指令,所以我可以''a * b'作为'custom_instruction(a,b)',但是因为cos在math.h库中,所以我无法改变这些乘法运算。 –
你怎么知道有乘法编译器正在使用的'std :: cos'的版本?你有权访问编译器的源代码吗?让它使用'custom_instruction(a,b)'可能会更容易,否则它会使软件增加,而不会实际改变你的程序 – Caleth