C++ 如何为库定义具有默认值的标志?

C++ 如何为库定义具有默认值的标志?,c++,C++,我在单独的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行的二维矩阵 柱。f是一个函数指针,可以指向以下类型的任何函数: double function‐name ( double x ) { … } 函数calc将矩阵a中的每个元素(即aij)转换为矩阵b中的bi

我在单独的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行的二维矩阵 柱。f是一个函数指针,可以指向以下类型的任何函数:

double function‐name ( double x ) { 
    … 
} 
函数calc将矩阵a中的每个元素(即aij)转换为矩阵b中的bij=faij

现在我想将源代码转换成一个名为matrix.a的静态库

但我希望这个库也包含一个名为do_round的布尔值,默认设置为false。什么时候 do_round为真,bij设置为bij=圆形faij

我能做什么?我的意思是,我必须这样做,如果用户没有在其程序中定义这个变量,或者定义了它,并且没有给它分配任何值,也就是说,没有初始化它或者定义它,并且给它分配一个真/假的值,那么我的程序工作正常。我该怎么办

这是my 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;
    }
}

在源文件中添加一个静态全局变量,以及一个设置该变量值的函数?为什么允许用户定义库使用的布尔变量?@JoachimPileborg mylibrary的源文件或用户程序?如果您指的是用户程序,我不能,我只能访问我的库。@Lingxi我如何限制他/她?如果作为库编写者,您已经定义了变量,用户也定义它将导致链接时间错误。这就是为什么作为用户,您不能定义std::cout。