There are common definitions for various types in stdint.h.
For example, for _u32, you could use uint32_t, and for _s32, you could use int32_t.
As for your second question, I'm not sure exactly what you are asking, but if I understand you correctly, all you need to do is reference the structure via the pointer. If any structure members are not initialized, then I would tread carefully before relying on a particular value.
To demonstrate an example:
Code:
#include <stdint.h>
#include <stdio.h>
struct Foo
{
uint32_t val1;
int32_t val2;
};
void initFoo(struct Foo* foo)
{
if (foo != NULL)
{
foo->val1 = 10;
}
}
int main()
{
struct Foo myFoo;
initFoo(&myFoo);
printf("myFoo.val1 = %u\n", myFoo.val1); /* will print 10 */
printf("myFoo.val2 = %d\n", myFoo.val2); /* will print "random" junk value */
return 0;
}