我将应用程序从使用char*
移植到所有地方,并使用UCS4作为其内部Unicode表示。我使用C11的U"unicode literals"
来定义字符串,这些字符串扩展为char32_t
的数组,基本上是uint32_t
。
问题在于正确地注释printf
- 就像函数一样。作为"格式"不再是char*
,编译器拒绝进一步编译它,我认为它对char32_t *
而不是char *
格式的%s
感到满意。
我根本不依赖于stdlib *printf
系列,因此格式化完全由我的实施完成。
除了完全禁用此属性外,对此有什么正确的解决方案?