抱歉,但是在带有Glibc的Linux上,某些答案不正确
在具有GNU
Glibc的Linux上,您可以自定义printf:您将调用
register_printf_function以例如
%Y在
printf格式字符串中定义的含义。
但是,此行为是Glibc特有的,甚至可能已经过时了……我不确定我是否会推荐这种方法!
如果使用C 进行编码,则C 流库具有可以扩展的操纵器,还可以为类型
operator <<等重载。
于2018年2月新增
您可以考虑编写一个GCC插件来帮助实现这一点(并改进一些extended的类型检查
printf)。这将不是一件容易的事(可能需要数周或数月的工作),并且将是特定于GCC版本的(与GCC
7和GCC
8的插件代码不同)。您可能需要添加一些特定的信息,
#pragma以通知您的插件有关诸如您的控件字符串说明符
%Y以及它们预期的类型的信息。您的插件应更改
format属性的处理(也许在中
gcc/tree.c)



