编译错误 - 数字常量

时间:2012-04-12 05:39:42

标签: c

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

我的错误如下:

  

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

     

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

我的节目:

#include <stdio.h>
#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;
}

2 个答案:

答案 0 :(得分:5)

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

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

所以在该行的末尾仍然缺少;,而5在那里毫无意义。

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

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

答案 1 :(得分:1)

#define N 5

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

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

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

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