【发布时间】:2015-07-08 07:43:44
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#define MAX 15 //line that give problems
int linearSearch(int v[], int MAX, int valore);
int main()
{
int ris, valore, v[]={1,1,1,1,1,1,1,1,1,12,1,1,1,1,1};
scanf("%d", &valore);
ris = linearSearch(v, MAX, valore);
printf("%d", ris);
return 0;
}
int linearSearch(int v[], int MAX, int valore)
{
int i;
for (i=0;i<MAX;i++)
{
if(valore==v[i])
return i;
}
return -1;
}
为什么这段代码在编译时会报错?如果我用
替换预处理器指令,为什么它会正确运行const int MAX = 15;
【问题讨论】:
-
您的参数
int MAX,- 想想当预处理器用MAX替换15时会发生什么...int 15?? -
你甚至不需要中间参数。
标签: c compiler-errors constants c-preprocessor