目前我尝试了解asn1c编译器.我现在通过PDF https://lionet.info/asn1c/asn1c-usage.pdf阅读.在2.1.7节中,释放目标结构就是这样一个例子:
/*
1. Rectangle_t is defined within my_figure
*/
struct my_figure {
Rectangle_t rect;
} *mf = ...;
/*
* Freeing the Rectangle_t* without freeing the mf->rect area.
*/
asn_DEF_Rectangle.free_struct( &asn_DEF_Rectangle, &mf->rect, 1 /* !free */ );
Run Code Online (Sandbox Code Playgroud)
我会看到rect其中一部分struct my_figure嵌入在同一块内存中.那么,为什么我需要用该函数释放该结构?当它没有释放内存的时候,这个功能的用途是什么?
Rectangle_t的定义如下:
RectangleTest DEFINITIONS ::= BEGIN
Rectangle ::= SEQUENCE {
height INTEGER,
width INTEGER
}
END
Run Code Online (Sandbox Code Playgroud)
生成的标头
/*
* Generated by asn1c-0.9.24 (http://lionet.info/asn1c)
* From ASN.1 module "RectangleTest"
* found in "../Rectangle.asn1" …Run Code Online (Sandbox Code Playgroud)