【发布时间】:2017-11-10 08:48:00
【问题描述】:
当我按照以下方式进行操作时,代码可以正常工作:
#include <stdio.h>
void test( int a)
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
但是当我这样做时
#include <stdio.h>
void test( auto int a) // Or static int a Or extern int a
{
printf("a=%d\n",a);
}
int main()
{
test(10);
return 1;
}
它会产生错误,
错误:为参数“a”指定了存储类
为什么会出现这个错误?内部发生了什么(内存管理)?
但是当我这样做时它可以正常工作,没有任何错误:
void test( register int a)
{
printf("a=%d\n",a);
}
这是为什么呢?
【问题讨论】:
-
参数怎么可能是
static?无论如何,它会随着每次调用函数而改变......而且绝对不能是extern
标签: c function formal-languages storage-class-specifier