正如标题中所写,我遇到了一个问题,需要理解C语言中double (f)(double)
的含义。整个方法头看起来像这样:
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;
}
&
运算符)放在期望此类表达式的位置。 - Theodoros Chatzigiannakis&
运算符,因为函数名会自动退化为指针本身。 - Grzegorz Szpetkowski