I had come across the following code:
typedef struct { double x; double y; double z; } *vector;
Is this a v
It a valid one, what it does is it defines a new type. As @Alex said, it would be useful to define a type and pointer type.
You could create more pointers just by using
S1PTR ptr1, ptr2, ptr3, ...;
instead of
S1 *ptr1, *ptr2, *ptr3, ...;