У меня есть эта функция работать, которая печатает значение в качестве offsetmap:Получить результат в строковую переменную в OCaml
let pretty_offsetmap_original lv fmt offsetmap =
begin match offsetmap with
| None -> Format.fprintf fmt "<BOTTOM>"
| Some off ->
let typ = Some (typeOfLval lv)
in
Format.fprintf fmt "%a%a"
pretty_lval_or_absolute lv
(Cvalue.V_Offsetmap.pretty_typ typ) off
end
Теперь я хотел бы получить значение в переменной строки, чтобы преобразовать его в мой цель. Я заменил Format.fprintf fmt
на Printf.sprintf
, но он не работает. Ошибка компиляции:
Error: This expression has type
Format.formatter -> Cvalue.V_Offsetmap.t -> unit
but an expression was expected of type unit -> 'a -> string
Это работает, спасибо большое Борис – user2544482