在C中,我们不能使用&来查找寄存器变量的地址,但在C++中我们也可以这样做.为什么它在C++中合法而在C中不合法?有人可以深入解释这个概念.
如果函数的参数的int *check(register int,register int);存储类声明为其他存储类,则以下代码显示错误.
我使用GNU GCC Compiler在Code :: Blocks 10.05 IDE上编译了这段代码.错误背后的原因是什么?它是编译器特定的错误还是一般错误?代码部分从这里开始:
int *check(register int, register int);
int main()
{
int *c;
c = check(10, 20);
printf("%d\n", c);
return 0;
}
int *check(register int i,register int j)
{
int *p = i;
int *q = j;
if(i >= 45)
return (p);
else
return (q);
}
Run Code Online (Sandbox Code Playgroud)