The following code displays an error if the Storage Class of the parameters of the function `int *check(register int,register int);` declared as some other Storage Class.

I compiled this code on *Code::Blocks 10.05 IDE* with *GNU GCC Compiler*. What is the reason behind the error? Is it a compiler specific error or a general one?
The code section begins from here:

```
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);
}

```