这是我第一次使用函数指针。
我想做的是创建一个名为essay的函数,它获取指向另一个函数的指针,一个整数num,然后num加倍。
函数文章,将参数相乘,然后将我作为参数收到的函数的值与乘积返回。
这听起来很复杂,但实际上非常简单。例子:
essay(sin,2,pi,1/2) will return the value of sin(pi/2)
这是我的代码...由于某种原因,它不允许我将指针发送到函数 sin。说没有重载函数 sin 的实例与参数列表匹配,但这正是我看到我的老师这样做的方式......我想。
#include <stdio.h>
#include <conio.h>
#include <stdarg.h>
#include <math.h>
double (*pfunc)(double);
double essay(double* pfunc(double),double num, ... )
{
int i;
double product=1,result;
va_list arguments;
va_start(arguments,num);
for(i=0;i<num;i++)
product*=va_arg(arguments,double);
va_end(arguments);
result=*(pfunc(product));
return result;
}
void main()
{
double x,y;
x=3.14159265358979323846;
y=0.5;
printf("%lf",essay(sin,2,x,y));
getch();
}