嘿, 假设我有以下功能:'动态'在C中使用变量?
#define SIZE 100
double a[SIZE];
double b[SIZE];
double a_function(int index1, int index2)
{
switch(index1)
{
case 1:
return a[1]*a[2]*a[5]*a[3];
case 2:
return a[6]*cos(a[77])*exp(a[95]);
// .............. MUCH MORE CASES
// ALWAYS USING ONLY VALUES OF ARRAY a
case 100:
return exp(a[20])*sin(a[21]);
}
}
我要实现以下目标:index2
比介于0和SIZE-1
,我想在任何情况下使用b[ index2 ]
没有“取代”每a[ index2 ]
改变switch/case-construct。此外,a和b不能修改,所以它们是只读的!
在这个简单的例子:
a_function(2, index2)
为索引2 = {6,77,95} - >返回a[6]*cos(a[77])*exp(a[95]);
a_function(2, 6)
- >返回b[6]*cos(a[77])*exp(a[95]);
如何做到这一点任何想法? 也许有一些帮助功能或使用'模板'? 非常感谢!
啊谢谢,看起来很酷。但我只是想知道如果我经常整合这个宏,性能会如何呢? – tim 2011-05-13 21:45:05
再次感谢,它现在正在使用,它的作品就像一个魅力! – tim 2011-05-14 13:45:57