可將求值函數的算法直接寫到代碼中,從而降低調用函數的時間開銷。
#include?<stdio.h>double?Value(double?x,double?eof[],int?n)?{
int?i;
double?val?=?x?*?eof[n];
for(i?=?n?-?1;?i?>?0;?--i)?{
val?=?x?*?(eof[i]?+?val);
}
val?+=?eof[0];
return?val;
}
int?main()?{
double?f1[]?=?{1,2,1};
double?f2[]?=?{3,3,0,-1};
int?n1?=?sizeof(f1)/sizeof(f1[0])?-?1;
int?n2?=?sizeof(f2)/sizeof(f2[0])?-?1;
double?x?=?2;
printf("x?=?%.2lff1(x)?=?%lf\n",x,Value(x,f1,n1));
printf("x?=?%.2lff2(x)?=?%lf\n",x,Value(x,f2,n2));
return?0;
}