下面展示下如何用 label 将一个节点“分割”成多个部分,类似 C 语言的结构体。
如下代码,将一个节点表达成一个链表结构,然后用连线来连接:
digraph example {
node [shape=record];
// label属性中,用“|”分割出元素,“<..>”之间的定义成一个变量
struct1 [label="
head | item1 | item2 | ... |// 用“节点名:元素名”的方式引用结构体的变量
struct1:head -> struct1:tail;
}
效果如下图:
还可以对结构体元素中再进行分割,只需在元素中用“{ … }”划分。如下,表达 ELF 结构体:
digraph example {
node [shape=record];
struct1 [label="ELF Header | Header Table | {Segment1 | Segment2 | ...} | Section Header Table"];
}
效果如下图: