处理语言中结构体和数组互相嵌套的情况,使用OCaml十分的方便,代码如下:
let rec print_struct p (name, fld) str_nid structs =
let rec print_fields = function
| Fnil -> ()
| Fcons(id, ty, rem) ->
match ty with
| Tarray(aid, t, n) ->
print_array p aid str_nid t n structs
| Tstruct (tid,fld) ->
print_struct p (tid, fld) (str_nid^"."^structname) structs
| _ ->
print_fields rem
in
print_fields fld
and print_array p id name tt n structoffset =
match tt with
| Tstruct (tid,fld) ->
print_struct p (tid, fld) name structoffset; | Tarray(aid, t, n) ->
print_array p aid (name ^ "[" ^(string_of_int i) ^"]") t n structoffset
| _ ->
fprintf p " "
;;
print_struct和print_array两个函数相互嵌套调用。
OCaml中结构体与数组嵌套处理
本文介绍如何在OCaml中处理结构体和数组互相嵌套的情况,并提供了两个相互嵌套调用的函数:print_struct和print_array。通过这两个函数可以有效地解析和打印嵌套的数据结构。
185

被折叠的 条评论
为什么被折叠?



