Consider the code:
int main(void) { int a; }
As far as I know, int a; is a definition, as it causes storage to be reserved
int a;
Is then int a; a declaration then?
Yes.
In fact, every definition is also a declaration. A variable can have only one definition, but could have multiple declarations.