markflorisson88/cython — comment on commit cf9598f3707e46497b033a59437c2588bf52fe1c
File:  line 0
By markflorisson88:

Ok, thanks for the explanation! My biggest problem with this is that changing the C compiler or platform might suddenly break the code as it may insert padding (unless you're using packed structs). E.g. the code below will probably not work with format string `T{T{db}b}`:

```cython
ctypedef struct A:
double d
char c1
char c2
```

as there will very likely be padding after 'c1' in the original data. If you would now change 'char c1' to 'int c1' it would probably work on Linux (which I believe usually aligns doubles on 4-byte boundaries) but fail on OS X or Windows which often aligns double on 8-byte boundaries (and you're missing out on some padding!).