,数据类型转换的有关问题

求助,数据类型转换的问题。
void   matrix_a(   a_matrix,   b_matrix,   c_matrix,   krow,   kline,   ktrl   )
double   *a_matrix[],   *b_matrix[],   *c_matrix[];
short   krow,   kline,   ktrl;
///////////////////////////////////////////////////////////////////////////
Matrix   add:     a_matrix(   krow,   kline   )=b_matrix(   krow,   kline   )+c_matrix[krwo][kline]
//   矩阵相加(减)子函数
///////////////////////////////////////////////////////////////////////////
{}
例如上面的函数,使用的时候比如矩阵a=b+c;matrix_a(   a,   b,   c,   krow,   kline,   ktrl   );现在要将这个计算过程改为单精度float(由于浮点运算处理器只支持单精度)的,a,b,c本身还要是double的(通讯需要,并且函数使用次数很多,改a,b,c工作量太大),请教各位高人,能不能在该函数内修改?谢谢!

------解决方案--------------------
int nav_data_in(double *nav_data);
float nav【10】;
nav_data_in(nav);
数据传递会出错么?

一般应该会有警告,告诉你类型不匹配。

nav_data_in((double)nav);
这样呢?

float *转成double,然后用在double *上?很难不出错啊