It has "advantages" if you are going to include the same data in a number of different structures, and want to declare the common data in a single place - but generally speaking that is a poor way to do things anyway.
The only real "use" of this is when you want to define a set of related structures:
typedef struct
{
#define XYZ \
LONG x; \
INT y; \
CHAR z;
XYZ
} Base;
typedef struct
{
XYZ
int Count;
} Derived;
To emulate inheritance in more OOP oriented languages, where things like
typedef struct
{
LONG x;
INT y;
CHAR z;
} Base;
typedef struct
{
Base A;
int Count;
} Derived;
Could cause following data to be aligned differently (as the structure size will be rounded up to a machine word). But I'd want it well and truly commented before I let it into my code base.
But for general use, it's a waste of time, and confusing to read.