On 09/04/18 11:16, Dmitry Timoshkov wrote:
Sergio Gómez Del Real sdelreal@codeweavers.com wrote:
- #include <pshpack2.h>
- struct test_data_normal {
const WCHAR *str;
const WCHAR *nfc;
const WCHAR *nfd;
const WCHAR *nfkc;
const WCHAR *nfkd;
- };
- #include <poppack.h>
What's the reason to pack this structure to 2 bytes?
Hi. If I understand correctly, that pragma option leaves no gaps between the fields. Later on I iterate over the structure through a WCHAR *, starting from nfc, so I need the guarantee of the fields being contiguously laid out without padding.
What kind of padding do you observe in ths case? Even in a pure theoretical case it's impossible to have a 2 bytes gap between pointers of either 4 (32-bit arch) or 8 bytes (64-bit arch) long.
You are right... I didn't give it enough thought; I just assumed there could be padding. Thank you and sorry for the confusion.
- Sergio