我可以在Linux平台上为C printf添加新的格式说明符类型

如何添加一个新的格式说明符,例如%k ,它将以特定格式打印特定的用户定义结构?

我想做的事:-

 struct k { //members }s1; printf ("%k", s1); 

printf应以用户定义的方式打印结构。

是的,使用register_printf_function可以(但不可移植),有关详细信息,请参阅12.13从libc文档中自定义printf :

GNU C Library允许您为printf模板字符串定义自己的自定义转换说明符,以教授printf巧妙的方式来打印程序的重要数据结构。

以下是如何为MAC地址创建此类自定义格式说明符的示例。