在N个输入数据中找出极值的函数,请教应该如何申明变量?
想做一个求极大极小值的函数,假设有10个输入数据,输入数据有可能是(先不考虑负数吧),实数,4字节整数,2字节整数,8位整数,函数都必须先声明变量,返回值也必须声明变量,如何处理会比较好点。谢谢 union tagXXX
{
int xx1,
char xx2,
long xx3,
float xx4
..........
};
typedef struct
{
char nType;
union tagXXX dat;
}myData; 如果你用了C++,请使用泛型。大概像这样:template<typename T>
void GetMinMax(const T Data[], T* Max, T* Min){
...
}
如果没使用C++,那你的不考虑负数与实数难道不冲突吗?请模拟使用泛型,大概像这样:#define DefineGetMinMax(T) \
void GetMinMax_##T(const T Data[], T* Max, T* Min){ \
... \
}
//然后进行具体函数实现
DefineGetMinMax(float)
DefineGetMinMax(int32_t)
DefineGetMinMax(uint8_t)
...
//调用
GetMinMax_float(data /* float data */, &max, &min);
GetMinMax_uint8_t(data /* uint8_t data */, &max, &min);
页:
[1]