深入探索gawk数组操作与API使用
1. 数组元素与扁平数组结构
awk_element_t 是一种 “扁平化” 的数组元素。在 awk_flat_array_t 内部,awk 会生成一个由这些元素组成的数组。单个元素可以被标记为待删除状态,新元素必须通过专门的 API 逐个添加。
awk_element_t 的结构字段如下:
- struct awk_element *next; :此指针方便扩展开发者使用,可用于创建新元素的链表,之后通过遍历链表将元素添加到数组中。
- enum { … } flags; :一组标志值,用于在扩展和 gawk 之间传递信息。目前只有一个标志 AWK_ELEMENT_DELETE ,设置该标志后,在释放扁平数组时,gawk 会从原始数组中删除该元素。
- index 和 value :分别表示元素的索引和值,索引和值所指向的内存都归 gawk 管理。
awk_flat_array_t 是一个扁平数组结构,定义如下:
typedef struct awk_flat_array {
awk_const void *awk_const opaque1; /* for use by gawk */
awk_const void *awk_const opaque2
超级会员免费看
订阅专栏 解锁全文
2

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



