是否存在一个标准的C/C++函数,给定一个printf
格式字符串,它返回它所期望的参数个数?例如: -确定printf参数的数量
num_printf_args("%d %s") == 2;
num_printf_args("%.1f%%") == 1;
num_printf_args("%*d") == 2;
只是计算的%
数格式的字符串将是第一个近似值,这在第一个例子中的作品,但显然不是在第二个和第三个。
我知道gcc可以做到这一点,因为在编译时它会报告实际传递给printf
的参数数量(以及它们的类型)与格式字符串不匹配。
没有这样的功能,在ISO/IEC 9899:1999(语言标准)。不完全确定:2011年,但我不这么认为。这是由GCC实施的扩展。 – DevSolar
没有关于参数类型的信息,它为什么会有用? –
这不是语言的一部分,而是一个特定的gcc扩展。请参阅[gcc的函数属性]中的'format'(https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Function-Attributes.html)。 – usr2564301