On Tue, 14 Jun 2005 14:24:56 -0000, Grant Edwards <[EMAIL PROTECTED]> wrote:
> >Your example is not using standard alignment. It's using >native alignment: > > By default, C numbers are represented in the machine's native > format and byte order, and properly aligned by skipping pad > bytes if necessary (according to the rules used by the C > compiler). > > Alternatively, the first character of the format string can > be used to indicate the byte order, size and alignment of > the packed data, according to the following table: > > Character Byte order Size and alignment > @ native native > = native standard > < little-endian standard > > big-endian standard > ! network (= big-endian) standard > > If the first character is not one of these, "@" is assumed. > > Native byte order is big-endian or little-endian, depending > on the host system. For example, Motorola and Sun > processors are big-endian; Intel and DEC processors are > little-endian. > > Native size and alignment are determined using the C compiler's > sizeof expression. This is always combined with native byte > order. > > Standard size and alignment are as follows: no alignment is > required for any type (so you have to use pad bytes); short is > 2 bytes; int and long are 4 bytes; long long (__int64 on > Windows) is 8 bytes; float and double are 32-bit and 64-bit > IEEE floating point numbers, respectively. > > Note the difference between "@" and "=": both use native > byte order, but the size and alignment of the latter is > standardized. Thanks. I clearly missed the point of the explanation... Matt Feinstein -- There is no virtue in believing something that can be proved to be true. -- http://mail.python.org/mailman/listinfo/python-list