就像我已经在标题中写的那样,我遇到了一个问题,我需要了解 double (f)(double)
在 C 中的含义。整个 methode header 如下所示:
Bmp* drawGraph(double (f)(double),double minX,double maxX)
这是一个大学项目,我的教授喜欢缺席或无法通过电子邮件或其他通信方式联系到他。
我认为这个方法的名称和提议几乎是不言自明的。
在给这个方法的信息信中说“f”应该是一个函数,但我不知道在那种情况下我应该给这个方法什么样的参数。
Bmp* drawGraph(double (f)(double),double minX,double maxX)
{
double height = f(maxX);
Bmp* bmp = newBmp(maxX, f(maxX) * 2);
background(bmp, BLACK);
//Hier zeichne ich das Koordinatensystem
//in seiner minimalistischten Form
drawLine(bmp, GREEN, 0, f(maxX), maxX, f(maxX));
drawLine(bmp, GREEN, 0, 0, 0, f(maxX) * 2);
for(double d = minX; d < maxX; d += 0.1)
{
drawLine(bmp, RED, d, f(d) + height, d + 0.1, f(d + 0.1) + height);
}
return bmp;
}
最佳答案
double (f)(double)
f
是函数类型的参数:具有 double
参数并返回 double
值的函数。
例如:
double foo(double a)
{
return a + 42.0;
}
参数被调整(因此声明等价)为指向函数的指针,该函数具有 double
参数并返回 double
值。
double (*f)(double)
所以这些声明都是等价的:
void bla(double (f)(double));
void bla(double f(double));
void bla(double (*f)(double));
关于c - C 中的表达式 "double (f)(double)"可能是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036175/