- 论坛徽章:
- 0
|
我的程序:
static int st_set_array_value(char* pszParam, ...)
{
va_list arg_ptr;
char *pszArgValue = NULL;//= (char*)&szParam;
int nArgCout=0; //可变参数的数目
va_start(arg_ptr, pszParam); //以固定参数的地址为起点确定变参的内存起始地址。
pszArgValue = pszParam;
printf("nArgCount=%d(%s, %d)\r\n", nArgCout, __FILE__, __LINE__);
while('\0' != pszArgValue[0])
{
++nArgCout;
printf("the %d th arg: %s\r\n",nArgCout, pszArgValue); //输出各参数的值
pszArgValue = va_arg(arg_ptr, char*);//得到下一个可变参数的值
printf("nArgCount=%d(%s, %d)\r\n", nArgCout, __FILE__, __LINE__);
if ( (NULL == pszArgValue) || (0 == strcmp( pszArgValue, "\0")) ) /* 采用空串指示参数输入结束 */
{
break;
}
}
printf("nArgCount=%d(%s, %d)\r\n", nArgCout, __FILE__, __LINE__);
return TRUE;
}
int main(void)
{
printf("(%s, %d)\r\n", __FILE__, __LINE__);
st_printer_set_array_value("printer template", "row1", "row2", "row3");
return TRUE;
}
各位帮我看看这段代码是否有错?为何我输入4个参数,却打印了10个,从第5个开始是乱字符? |
|