c - 替代 C 中的嵌套函数?

标签 c nested-function

C 中嵌套函数的标准替代方法是什么?如何赋予一个函数另一个函数的作用域?我真的不想像结构一样传递额外的参数,使用可变长度输入,或者使用 gcc 扩展,除非没有其他办法。

对于我的具体问题,我有这个功能:

double findroot(double (*fp)(double), double start, double end);

它找到一个函数 f(x) 的根,该函数的一个变量以函数指针作为参数。

我想传入一个包含多个变量的函数,其中除一个变量外所有变量都是固定的。例如,f(x,a,b,c),其中 a、b 和 c 都是传入的常量,x 是唯一变化的变量。如何找到 f(0,a,b,c),同时保持 findroot 函数不变,以便 findroot 函数可重用和通用,而不是特定于这种情况?

谢谢。

最佳答案

如果您需要找到 f(x,a,b,c),其中 a、b 和 c 是不变的,那么建议使用一个新的更专业的函数 f2(x) = f(x,a,b,c) .例如:

double f2( double x )
{    
    return f( x, 1.0, 2.0, 3.0 ) ;
}

关于c - 替代 C 中的嵌套函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139971/

相关文章:

c - ALSA捕获示例中的段错误

javascript - Jasmine 测试没有看到嵌套函数

python - 警告带有自由变量的每个(嵌套)函数(递归)

python - 如何在python中的不同文件中导入嵌套函数?

jQuery 在嵌套函数调用中更改 CSS

c - 外部使用指针而不是数组

c - 使用 pthread_create

c - Ncurses 窗口缩放

c - 在多少条指令中获取了全局变量和静态变量?

python - 嵌套函数中的局部变量