#include<stdarg.h>
int Sum(char* buf, ...)
{
int i;
int C;
int dBuf=0;
char* ap;
for (i = 0, iC = 0; buf[i] != NULL; i++)
{
if (buf[i] == '%')
iC++;
}
va_start(ap, iC);
for (i = 0; i < iC; i++)
{
C = va_arg(ap, int);// 가변인수가 제대로 읽히지않는다 쓰레기값이 들어옴
dBuf += C;
}
va_end(ap);
}
void main()
{
Sum("%d%d%d%d",234,1,2,4);
}
주석달은부분이 문제가잇는데 가변인수가 안 읽힌다.
뭐가 문제냐
ap타잎확인하세요
하va_list 가 char* 다
저얘기할꺼같더라
http://ideone.com/EquIiH