编辑代码

# coding:utf-8
#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
from ctypes import *


RESERVED_LEN = 3

# 创建结构提类
class ImageInfo(Structure):
    _fields_ = [("version", c_int),
                ("offset", c_int),
                ("length", c_int)]

# 创建类型, nest_stu字段的类型为基础结构体的类名
class ImageHeader(Structure):
    _fields_ = [("image_info", ImageInfo),
                ("owner", (c_char * RESERVED_LEN))]


# print("sizeof Student: ", sizeof(Student))

# # 实例化
postrom_version = 7
postrom_offset = 33
postrom_length = 149
postrom_image_value = [postrom_version, postrom_offset, postrom_length]

postrom_image = ImageInfo(*postrom_image_value)
print("UNISOC postrom_image:")
print("version:", postrom_image.version)
print("offset:", postrom_image.offset)
print("length:", postrom_image.length)

print("--------------------------------")

reserved_data = c_char * RESERVED_LEN
reserved_data_value = reserved_data(c_char(b"Z"), c_char(b"J"), c_char(b"Q"))
postrom_image_header = [postrom_image, reserved_data_value.value]
postrom_header = ImageHeader(*postrom_image_header)

print("UNISOC postrom_header:")
print("postrom_header.version:", postrom_header.image_info.version)
print("postrom_header.offset:", postrom_header.image_info.offset)
print("postrom_header.length:", postrom_header.image_info.length)
print("postrom_header.owner:", postrom_header.owner)