Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
78ab583d
Commit
78ab583d
authored
Apr 12, 2010
by
Mark Dickinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More struct doc tweaks.
parent
b633f10f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
+13
-6
Doc/library/struct.rst
Doc/library/struct.rst
+13
-6
No files found.
Doc/library/struct.rst
View file @
78ab583d
...
@@ -17,9 +17,13 @@ structs and the intended conversion to/from Python values.
...
@@ -17,9 +17,13 @@ structs and the intended conversion to/from Python values.
.. note::
.. note::
The string representation of a given C struct includes padding where
By default, the result of packing a given C struct includes pad bytes in
necessary by default. This is the same behavior as provided by most
order to maintain proper alignment for the C types involved; similarly,
C compilers. The padding may be disabled if desired.
alignment is taken into account when unpacking. This behavior is chosen so
that the bytes of a packed struct correspond exactly to the layout in memory
of the corresponding C struct. To omit pad bytes, use `standard` size and
alignment instead of `native` size and alignment: see :ref:`struct-alignment`
for details.
Functions and Exceptions
Functions and Exceptions
------------------------
------------------------
...
@@ -202,10 +206,13 @@ For the ``'?'`` format character, the return value is either :const:`True` or
...
@@ -202,10 +206,13 @@ For the ``'?'`` format character, the return value is either :const:`True` or
Either 0 or 1 in the native or standard bool representation will be packed, and
Either 0 or 1 in the native or standard bool representation will be packed, and
any non-zero value will be True when unpacking.
any non-zero value will be True when unpacking.
.. _struct-alignment:
Byte Order, Size, and Alignment
Byte Order, Size, and Alignment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
By default, C
number
s are represented in the machine's native format and byte
By default, C
type
s are represented in the machine's native format and byte
order, and properly aligned by skipping pad bytes if necessary (according to the
order, and properly aligned by skipping pad bytes if necessary (according to the
rules used by the C compiler).
rules used by the C compiler).
...
@@ -262,9 +269,9 @@ so the ``'P'`` format is not available.
...
@@ -262,9 +269,9 @@ so the ``'P'`` format is not available.
Notes:
Notes:
(1) Padding is only automatically added between successive structure members.
(1) Padding is only automatically added between successive structure members.
N
ever at the beginning of the string encoding and never at the end
.
N
o padding is added at the beginning or the end of the encoded struct
.
(2)
Padding is disabl
ed when using non-native size and alignment, e.g.
(2)
No padding is add
ed when using non-native size and alignment, e.g.
with '<', '>', '=', and '!'.
with '<', '>', '=', and '!'.
(3) To align the end of a structure to the alignment requirement of a
(3) To align the end of a structure to the alignment requirement of a
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment