相关疑难解决方法(0)

C默认参数

有没有办法在C中为函数指定默认参数?

c arguments default-parameters

258
推荐指数
14
解决办法
19万
查看次数

C语言中参数的默认值和C中的函数重载

将C++库转换为ANSI C,似乎ANSI C不支持函数变量的默认值,或者我错了?我想要的是类似的东西

int funcName(int foo, bar* = NULL);
Run Code Online (Sandbox Code Playgroud)

另外,ANSI C中的函数重载是否可行?

需要

const char* foo_property(foo_t* /* this */, int /* property_number*/);

const char* foo_property(foo_t* /* this */, const char* /* key */, int /* iter */);
Run Code Online (Sandbox Code Playgroud)

当然可以用不同的方式命名它们,但是习惯于C++,我曾经习惯于重载.

c default overloading function

18
推荐指数
4
解决办法
6万
查看次数

C程序中带有默认参数的C++头文件

我有一个C++库,在头文件中声明了函数.我的函数声明包括默认参数.

我想通过Wolfram Mathematica WSTP模板编译器(wscc)在Mathematica中使用这个库.这需要将C接口写入我的库.我用过这种模式

#ifdef __cplusplus
extern "C" {
#endif

double my_function(double x, double abs_error = 1E-3);

#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)

防止我的库中的名称错误(用C++编译).但是默认参数怎么样?我不认为它们是标准的C.我发现,来自Wolfram Mathematica WSTP模板编译器(wscc)

错误:预期';',','或')'在'='之前令牌double abs_error = 1E-3,

我是否必须单独生成C和C++声明(实际上是两个头文件)?这是一个常见问题还是与我使用wscc有关?也许wscc不支持这种语法,虽然通常可以接受?

c c++ default-value header-files

1
推荐指数
1
解决办法
568
查看次数