uint32_t weirdness

You don't have to initialize it, just use put something useful in it.

uint16_t a;
uint 16_t b=42;
uint_16_t c = 99;

// stuff

a = b+c;

i.e., you don't need to initilialize it if you are going to assign to it later. (assuming you don't use the unitialized value!)