Patch by Greg Stein to document the 'P' flag.

This commit is contained in:
Guido van Rossum 1998-09-21 14:44:34 +00:00
parent 10a7985565
commit 6ac06b39b3
1 changed files with 17 additions and 0 deletions

View File

@ -57,6 +57,7 @@ and Python values should be obvious given their types:
\lineiii{d}{double}{float} \lineiii{d}{double}{float}
\lineiii{s}{char[]}{string} \lineiii{s}{char[]}{string}
\lineiii{p}{char[]}{string} \lineiii{p}{char[]}{string}
\lineiii{P}{void *}{integer}
\end{tableiii} \end{tableiii}
A format character may be preceded by an integral repeat count; e.g.\ A format character may be preceded by an integral repeat count; e.g.\
@ -85,6 +86,15 @@ that exactly enough bytes are used to satisfy the count.
For the \character{I} and \character{L} format characters, the return For the \character{I} and \character{L} format characters, the return
value is a Python long integer. value is a Python long integer.
For the \character{P} format character, the return value is a Python
integer or long integer, depending on the size needed to hold a
pointer when it has been cast to an integer type. A NULL pointer will
always be returned as the Python integer 0. When packing pointer-sized
values, Python integer or long integer objects may be used. For
example, the Alpha and Merced processors use 64-bit pointer values,
meaning a Python long integer will be used to hold the pointer; other
platforms use 32-bit pointers and will use a Python integer.
By default, C numbers are represented in the machine's native format By default, C numbers are represented in the machine's native format
and byte order, and properly aligned by skipping pad bytes if and byte order, and properly aligned by skipping pad bytes if
necessary (according to the rules used by the C compiler). necessary (according to the rules used by the C compiler).
@ -126,6 +136,13 @@ There is no way to indicate non-native byte order (i.e. force
byte-swapping); use the appropriate choice of \character{<} or byte-swapping); use the appropriate choice of \character{<} or
\character{>}. \character{>}.
The \character{P} format character is only available for the native
byte ordering (selected as the default or with the \character{@} byte
order character). The byte order character \character{=} chooses to
use little- or big-endian ordering based on the host system. The
struct module does not interpret this as native ordering, so the
\character{P} format is not available.
Examples (all using native byte order, size and alignment, on a Examples (all using native byte order, size and alignment, on a
big-endian machine): big-endian machine):