编译错误 – 数字常量

我的程序中不断出现以下编译错误。 我想编写一个使用数组p[] ,该程序被传递给计算第n度多项式的函数(在下面设置为5)并返回该值。

我的错误如下:

poly.c:4:39:错误:在数字常量之前预期’;’,’,’或’)’

poly.c:16:39:错误:在数字常量之前预期’;’,’,’或’)’

我的节目:

 #include  #define N 5 double eval(double p[], double x, int N) int main() { double p[N+1] = {0,1,2,3,4}; double x; printf("what value of x would you like?: "); scanf("%lf", &x); p[N+1] = eval(p[], x, n); printf("%lf", p[N+1]); } double eval(double p[], double x, int N) { double y; y = x^(p[N+1]); return y; } 

预处理器完成后,您的代码如下所示:

 double eval(double p[], double x, int 5) 

所以仍然缺少; 在那条线的尽头,那5没有任何意义。

不要定义这样的短宏名称,也不要有#define正式参数名称。 确保在所有代表全局常量的代码中使用N

另外,要将p数组作为参数传递,只需说p ,而不是p[]

 #define N 5 double eval(double p[], double x, int N) 

由于#defined N为5,因此在预处理之后,上面的内容将如下所示:

 double eval(double p[], double x, int 5) 

显然那是错的。 函数声明也需要用分号终止。