gpt4 book ai didi

c - 如何为 C11 U“unicode 文字”正确使用 `__attribute__((format (printf, x, y)))`?

转载 作者:太空狗 更新时间:2023-10-29 15:08:05 25 4
gpt4 key购买 nike

我正在移植一个应用程序,从对任何地方使用 char* 到使用 UCS4 作为内部 Unicode 表示。我使用 C11 的 U"unicode literals" 定义字符串,它扩展为 char32_t 的数组,本质上是 uint32_t

问题在于正确注释类似 printf 的函数。由于“格式”不再是 char*,编译器拒绝进一步编译它,而且它不会满意 char32_t * 而不是 char * 用于 %s 格式,我想。

我根本不依赖于 stdlib *printf 系列,所以格式化完全由我的实现完成。

除了完全禁用此属性之外,正确的解决方案是什么?

最佳答案

目前在 GCC 中无法做到这一点。这是一个已知错误,请参阅 GCC bug 64862

关于c - 如何为 C11 U“unicode 文字”正确使用 `__attribute__((format (printf, x, y)))`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742677/

25 4 0