c - 如果否则优化重复

时间:2016-11-02 21:24:58

标签: c if-statement optimization

我有以下代码:

if (a1 < a2)
   a3=0;
else
   a3=a1-a2;

if (b1 < b2)
   b3=0;
else
   b3=b1-b2;

if (c1 < c2)
   c3=0;
else
   c3=c1-c2;

代码非常重复。关于优化代码大小的任何建议?我不想使用数组。

2 个答案:

答案 0 :(得分:3)

您可以使用像:

这样的宏
[n]

或改为使用函数。

#define COM(x,y) ((x<y)?0:(x-y))

...
a3 = COM(a1,a2);
b3 = COM(b1,b2);
c3 = COM(c1,c2);

如果你可以使用数组(用于存储a,b和c等)来存储这些值,那么你可以使用一个简单的循环而不是重复宏/函数调用。

答案 1 :(得分:1)

您可以先从初始化变量开始,然后根据需要使用if语句。例如。

a3=a1-a2;
b3=b1-b2;
c3=c1-c2;

if(a1<a2)
  a3=0;

if(b1<b2)
  b3=0;

if(c1<c2)
  c3=0;