有关#define 作用域的问题求助
#include <stdio.h>#define N 3
int sum(int *p);
主函数;
int main(int argc,char *argv[])
{
int i;
int s=0;
int a[N];
printf("输入数组的元素,求和\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
s=sum(a);
printf("数组元素求和后的值为:%d\n",s);
system("PAUSE");
return 0;
新建单元;
int sum(int *p)
{
int i;
int s=0;
for(i=0;i<N;i++)
{
s+=p[i];
}
return s;
}
我现在用的是DEV C\C++,我不知道是我编绎器的问题还是代码的问题,现在有这样一个情况,
以上代码在直接编绎时提示错误,函数sum 中的N在使用前没有定义。感觉#define N 3在函数sum中没有起到作用。
以上代码用数组作为函数的参数来传递。int sum(int a[],int n);调用的时候为s=sum(a,N)这时候sum函数中的#define N 3
的定义就没有提示N未定义的错误,这是怎么回事?