Ist die folgende Zeile denn so richtig?

uint16_t i;

oder gehört da eventuell ein "=" oder irgendein Operator dazwischen?

Ich habe leider keine Ahnung von C und kann nur daher nur raten