我在单独的matrix.h
和matrix.cpp
文件中实现了以下功能:
void calc ( double* a, double* b, int r, int c, double (*f) (double) )
输入参数 a , r , c 和 f , b 是输出。 a 和 b 是带有 r 行且 c 的2d矩阵 列。 f 是一个函数指针,可以指向以下类型的任何函数:
double function‐name ( double x ) {
…
}
函数calc
将矩阵 a 中的每个元素(即aij)转换为矩阵 b 中的bij = f(aij)。
现在我想将源代码转换为名为 matrix.a 的静态库。
但是我希望这个库包含一个名为 do_round 的布尔值,默认设置为false。什么时候 do_round为true,bij设置为bij = round(f(aij))。
我能做到吗?我的意思是我必须以这样的方式做到这一点:如果用户没有在其程序中定义此变量或定义它并且没有为其分配任何值(即未初始化它)或定义它并将值赋值为true / false它,我的程序工作正常。我该怎么办?这是我的 matrix.cpp 内容:
void calc(double* a,double* b,int r,int c ,double (*f) (double) )
{
double input;
double output;
for(int i=0;i<r*c;i++)
{
input=a[i];
output=(*f)(input);
b[i]=output;
}
}