I am getting compilation error when compiling below code.

```
#include <stdio.h>
main()
{
    printf("Hello 123\n");
    goto lab;
    printf("Bye\n");

lab: int a = 10;
     printf("%d\n",a);
}

```

When i compile this code it is giving

```
test.c:8: error: a label can only be part of a statement and a declaration is not a statement

```

Why first part of a label should be a statement and why not a declaration?