使用printf定制化打印对象
TBOX内置的libc库,有一份自有的printf实现,在支持了所有标准格式化参数的同时,也对其进行了一些扩展,来支持自定义的格式化参数打印, 例如: // 输出定点数:3.14 tb_printf("%{fixed}\n", tb_float_to_fixed(3.14)); // 输出ipv4地址:127.0.0.1 tb_ipv4_t addr; tb_ipv4_set(&addr, "127.0.0.1"); tb_printf("%{ipv4}\n", &addr); 以上两种都是TBOX内置的对象参数打印,你只需要吧你需要打印的对象名和对象描述函数注册进来,就行了。 其中 %{object_name} 就是自定义参数化对象打印的格式,这个是对%s、%f等标准格式的扩展,使你可以像ios中的 NSLog(@"%@", object) 那样方便的打印自定义对象的内容。 例如:如果你要支持自定义打印如下内容: typedef struct _rect_t { tb_long_t x; tb_long_t y; tb_size_t w; tb_size_t h; }rect_t; tb_printf("%{rect}\n", &rect); 那么你只需要提供对应的rect对象的描述函数,并对其进行注册,就行了: // rect对象的描述函数,将描述内容格式化到cstr中