我有一个函数,它接受一个整数列表,直到其中一个值为“-1”,并计算最小值。
如果该函数被多次调用,则应返回所有调用之间的最小值。
因此,我编写了以下代码:
如果该函数被多次调用,则应返回所有调用之间的最小值。
因此,我编写了以下代码:
int min_call(int num, ...)
{
va_list argptr;
int number;
va_start(argptr, num);
//static int min = va_arg(argptr, int); //////// the questioned line
static int all_min = -1;
int min = va_arg(argptr, int);
if (min != -1)
{
while ((number = va_arg(argptr, int)) != -1)
{
if (number < min)
{
min = number;
}
}
}
if (min < all_min || all_min == -1)
{
all_min = min;
}
return all_min;
}
我想了解关于标记行的一些内容...为什么我不能称之为 - 编译器说因为用于初始化静态int的表达式不是常量。
由于某种原因,我记得我可以初始化一个静态变量,并且知道初始化语句只会在第一次编写时调用(第一次)它在C ++中可用的话,它将节省我几个变量。
在这个问题上,C和C++有区别吗?
INT_MAX
,请看我的答案。 - Alok Singhal