stdarg宏问题
#include <stdarg.h>
#include<stdio.h>
int max_list(int first_arg,...)
{
va_list var_arg;
int max;
va_start(var_arg,first_arg);
if(first_arg>=0)
{
int this_arg;
max=first_arg;
while( ( this_arg = va_arg( var_arg, int ) ) >= 0 )
{
if( this_arg > max )
max = this_arg;
}
va_end( var_arg );
}
return max;
}
void main(void)
{
printf("%d\n",max_list(1,2,3,66,33,-1));
}
上面语句中为什么不会在红色的if语句中循环
[解决办法]