不懂資料結構苦啊
union在記憶體中只佔有一塊記憶體空間,空間大小由union中佔位最多的資料類型決定,union在初始化的時候,union的值,由最後一個有效參數決定
'''Created on 2012-9-9@author: jincheng'''from ctypes import *print "aaa:"value = raw_input()v=int(value)vv=long(value)vvv=valueclass aaa(Union): _fields_=[ ("aaa",c_int), ("bbb",c_long), ("ccc",c_char), ]print "aaaaaaa:%s" %valuea=aaa(v,vv,vvv)print "aaa: %d" %a.aaaprint "bbb: %ld" %a.bbbprint "ccc: %s" %a.ccctest1
c:\Python27>python D:\jincheng\workspace\GrayHatPython\chapter1.pyaaa:6aaaaaaa:6aaa: 54bbb: 54ccc: 6
test2
c:\Python27>python D:\jincheng\workspace\GrayHatPython\chapter1.pyaaa:66aaaaaaa:66aaa: 13878bbb: 13878ccc: 66
修改
from ctypes import *print "aaa:"value = raw_input()v=int(value)print "v %d" %vprint "bbb:"val=raw_input()vv=long(val)vvv=valueclass aaa(Union): _fields_=[ ("aaa",c_int), ("bbb",c_long), ("ccc",c_char * 6), ]print "aaaaaaa:%s" %valuea=aaa(v,vv)s=a.aaass=int(s)print "ss %d" %ssprint "aaa: %d" %a.aaaprint "bbb: %ld" %a.bbbprint "ccc: %s" %a.ccctest
D:\Python27>python d:\demo.pyaaa:66v 66bbb:55aaaaaaa:66ss 55aaa: 55bbb: 55ccc: 7