gpt4 book ai didi

gcc 在使用 gettext 时可以检查 printf 格式吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:42 25 4
gpt4 key购买 nike

Gcc 可以检查 printf 参数是否匹配给定的格式。但这仅在 printf 的参数是文字时才有效。显然,gcc 需要知道格式。

现在,当代码本地化时,通常是需要本地化的格式。所以它通过 gettext 传递,但它不再是文字,gcc 无法检查参数是否匹配。

有没有什么方法可以告诉 gcc 假设 gettext 函数返回它的参数以进行检查?

当然,我可以在禁用本地化的情况下做一个单独的构建来检查,但我想知道在主编译期间是否可以选择这样做。

最佳答案

这听起来像 gcc 的 format_arg属性旨在:

The format_arg attribute specifies that a function takes a format string for a printf, scanf, strftime or strfmon style function and modifies it (for example, to translate it into another language), so the result can be passed to a printf, scanf, strftime or strfmon style function (with the remaining arguments to the format function the same as they would have been for the unmodified string).

不确定为什么 gettext 不使用它,如果它不使用的话。

关于gcc 在使用 gettext 时可以检查 printf 格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com