我的目标是获得两个数字并执行与他们持有的值相对应的数据:
对于ex ..让变量 x 和 y 。
我需要计算另一个var z 的值,如下所示:
z = x + y //如果 x = y = 1
z = x - y //如果 x = 0且 y = 1
由于我需要多次使用它,否则在循环中使用if else是没有效率的。
我基本上需要的就像一个宏....最好使用#define。,就好像它只使用一次:
#define x + y 1 将x + y替换为1,但不依赖于 x 和/或 y 的值
有什么方法可以用1替换x + y,用0替换x-y等等......
答案 0 :(得分:3)
在运行时之前你无法知道x
和y
的值,所以你无法做任何事情,只能使用if
就像你要去的那样,并想到将会有的数学需要最少的操作(考虑到1 =减法=加法<乘法<除法通常)。
如果我误解了您只想将x + y
替换为1
而x - y
替换为0
,则可以手动或通过查找和替换替换它们。< / p>
答案 1 :(得分:2)
如果vars是整数/任何其他基本类型,则无法提高性能,因为编译通常会将其转换为一个汇编代码行。例如sub eax, ebx
无论如何,如前所述,你不能在编译时这样做,因为在编译时不知道x,y值。
你可以提示编译器使用register
关键字在寄存器上保存x和y,这样可以将变量保存在CPU寄存器中,以便更快地进行计算。