The #pragma is part of the source code and helps to document the actual structure's layout. If it were in a Makefile or compiler option external, it is far from obvious by reading the code what the layout is.
If need be, other compilers can exactly support it with conditional pragmas. As it turns out, #pragma pack() is supported by Borland, gcc, and VC. Maybe even Intel:
#if defined(__INTELC_) || defined(__BORLANDC__) || defined(__MSVC__)
#pragma pack(1)
#elif defined(__SOME_OTHER_C__)
#pragma struct packing(0)
...
#endif