by Richard Russell, March 2010
By default structure member names are crunched on compilation (assuming the Abbreviate names option is selected), just like the names of ordinary variables, arrays etc. Normally this is perfectly OK, and is what you will want to reduce the size of the executable and make it run more quickly.
However there is one situation when you don't want structure member names to be altered, which is when the structure is referenced both in your main program and in a library but only one of them has been crunched (or they have been crunched independently). If the crunch process alters the member names in the library but not in the main program (or vice versa), the program may not run.
There are two main circumstances when this situation might arise:
In these circumstances you will need to prevent crunching of the structure member names taking place. There are four main ways to achieve this:
Ideally this issue should be avoided entirely by not referencing the members of a structure in both the main program and in a library (for example by using an 'opaque' structure whose members are referenced only in the library) but that may not always be possible or desirable.