第 3 页 处理各种 tag 的 callback 定义2.3 处理各种 tag 的 callback 定义
处理 tag 的 callback 函数定义如下。
static const tag_format_t tag_table [] =
{
{ 0 , "NOP" , NULL },
{ 0 , "UNKNOWN" , NULL },
{ 0 , "COUNTERS" , tag_counters },
{ GCOV_TAG_FUNCTION , "FUNCTION" , tag_function },
{ GCOV_TAG_BLOCKS , "BLOCKS" , tag_blocks },
{ GCOV_TAG_ARCS , "ARCS" , tag_arcs },
{ GCOV_TAG_LINES , "LINES" , tag_lines },
{ GCOV_TAG_OBJECT_SUMMARY , "OBJECT_SUMMARY" , tag_summary },
{ GCOV_TAG_PROGRAM_SUMMARY , "PROGRAM_SUMMARY" , tag_summary },
{ 0 , NULL , NULL }
};
其类型 tag_format_t 为一个结构,分别由 tag 本身, tag name 和处理该 tag 的函数指针组成,定义如下。
typedef struct tag_format
{
unsigned tag ;
char const * name ;
void ( * proc ) ( const char * , unsigned , unsigned );
} tag_format_t ;