编译错误 - 数值常量

标签 c

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

我的错误如下:

poly.c:4:39: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant

poly.c:16:39: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant

我的程序:

#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;
}

最佳答案

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

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

所以在该行的末尾仍然缺少 ;5 在那里没有任何意义。

不要定义这么短的宏名,也不要有同样是#define的形参名。确保在所有表示全局常量的代码中只使用 N

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

关于编译错误 - 数值常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10117977/

相关文章:

c - 双链表删除和添加节点时出现段错误

c - 将函数返回的指针作为输入传递给其他函数时如何避免内存泄漏?

c - 将一个指向struct的指针和一个int传递给C中的函数以实现堆栈

c - 如何创建位图(在 C 中)?

c - 如何跟踪函数调用?

C 程序行为与主要风格的区别

关于不从任何外部文件读取数据时 EOF 工作的说明

具有无符号变量的结构位域的 C 代码段行为

c - 如何用 C 语言编写过滤器程序?

c - 运行 fork 并打印 hello