A small suggestion from me. Why don't you give a simple try with that code, rather than asking us. Experience teaches us many things and even we get a chance to expermient many things with that piece of code right!
Hope you will take my suggestion in a positive sense.
hai thanks alot . i got a little bit of confusion .i thought that redefines will not occupy values but uses the storage space alone . thats y ? i got clarified now .
I'm not sure I get your point, but I'll explain my understanding:
When you define a group field w/ valued elementary sub-fields they define a string of data. In your example that string is 5 bytes long and contains "22211":
a - 3 bytes long and containing "222".
b - 2 bytes long and containing "11".
When you redefined that 5 byte string you divided it into 2 fields:
A 4 byte field (c) that contained the 1st 4 bytes of the string, "2221".
A 1 byte field (filler) that contained the 5th byte of the string, "1".