求:返回结构数组中某个域最小的数组下标 的 宏定义或函数
OlOl 2006-06-22 09:06:05 有一些结构,如
struct S1_t
{
double keyField ;
..
}
S1_t s1[100];
返回s1中 keyfield 最小的下标。
当然,这个任务可以用下面的代码实现:
//----------------------------------------------
double minvalue = 100000000.0;
for (int i=0; i< 100; i++ )
{
if (s1[i].keyField < minvalue )
{
minvalue =s1[i].keyField;
index = i;
}
}
//----------------------------------------------
但是,如果数组有很多,而且有结构名或域名也不同,
如何做一个宏,使得 struct的名字,field的名字变化时
都能应用呢?
比如,定义 MIN(数组的变量名,关键域名)
使
index = MIN(s1, keyField);
得到 数组s1 的keyField最小的 项的下标。