c-如何检查传递给任何函数的变量参数的数量



我有一个程序,我在其中定义了一个新的打印函数,以按要求的格式打印一些数据。正在传递整型和字符串数据类型的变量参数。在打印字符串类型之前,我想检查是否传递了多少个参数和参数的类型。否则,如果我错误地传递了integer并尝试以字符串格式打印,那么我会看到分段错误
下面是我的代码;

void my_print(int log, int flags,....)
{ 
/* ----------------------
----------------------
---------------------- */
}

在以所需格式打印参数之前,我想检查传递给此函数的参数数量。有时我通过5个论点,有时我通过6个论点。

那么,在C语言中有没有函数可以检查传递给这个函数的参数总数?

根据定义(阅读C11标准n1570(,任何可变函数(如printf(都应该知道何时停止获取参数:请参阅stdarg(3(。

通常的方法是有一个区分前缀的参数(就像syslog(3(所做的那样(。你可以有其他约定(例如,在一些全局变量中存储描述调用的内容,使用C宏,等等(

变量自变量的概念要求自变量的数量是已知的
一个例子是printf()的格式字符串,它意味着数字,而不是实际给出的数字。
您也可以简单地在变量参数之前的附加整数参数中指定数字,因为之后当然不起作用,因为您需要知道数字才能找到提供数字的参数。

相关内容

  • 没有找到相关文章

最新更新