homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients Alexander.Belopolsky, Jake.Coffman, amaury.forgeotdarc, castironpi, terry.reedy, theller, vladris, vstinner
Date 2011年07月13日.16:05:38
SpamBayes Score 0.00047321164
Marked as misclassified No
Message-id <1310573138.87.0.941834501524.issue4376@psf.upfronthosting.co.za>
In-reply-to
Content
I don't like your test because it depends on system endian:
+ if sys.byteorder == "little":
+ struct.menu.spam = 0x000000FF
+ else:
+ struct.menu.spam = 0xFF000000
I would prefer a test creating a structure from a byte string. Something like:
---------------------------
import ctypes
class Nested(ctypes.BigEndianStructure):
 _fields_ = (
 ('x', ctypes.c_uint32),
 ('y', ctypes.c_uint32),
 )
class TestStruct(ctypes.BigEndianStructure):
 _fields_ = (
 ('point', Nested),
 )
data = b'0円0円0円1円0円0円0円2円'
assert len(data) == ctypes.sizeof(TestStruct)
obj = ctypes.cast(data, ctypes.POINTER(TestStruct))[0]
assert obj.point.x == 1
assert obj.point.y == 2
---------------------------
Use b'1円0円0円0円2円0円0円0円' for little endian.
History
Date User Action Args
2011年07月13日 16:05:38vstinnersetrecipients: + vstinner, theller, terry.reedy, amaury.forgeotdarc, castironpi, Alexander.Belopolsky, Jake.Coffman, vladris
2011年07月13日 16:05:38vstinnersetmessageid: <1310573138.87.0.941834501524.issue4376@psf.upfronthosting.co.za>
2011年07月13日 16:05:38vstinnerlinkissue4376 messages
2011年07月13日 16:05:38vstinnercreate

AltStyle によって変換されたページ (->オリジナル) /