我正在尝试为float *(C ++)设置默认值 作为函数参数。 例如-
<library_name>-<version-number>
有人知道该怎么做吗?
答案 0 :(得分:6)
由于x
是一个指针,因此无法为其设置默认数值。您只能设置一个默认地址。要模拟给它一个默认值,请在该值的某个地方有一个常量float
(或者在这种情况下为float[2]
),并将x
设置为默认值。
const float default_x[2] = { 0.f, 250.f };
void foo(const float * x = default_x) {
// use x
}
请注意,使用c样式数组容易出错,因此在现代c ++代码中不建议使用。相反,当在编译时已知大小时,首选std::array
,否则选择std::vector
。例如,以下代码将达到相似的结果,并且使用起来更安全:
#include <array>
const std::array<float, 2> default_x = { 0.f, 250.f };
void foo(const std::array<float, 2> & x = default_x) {
// use x
}
答案 1 :(得分:1)
通常最好通过函数重载来完成这种事情。
void f(float* arg) {
// whatever
}
void f() {
static float default_data[] = { 0, 250 };
f(default_data);
}