C?????????????
???????????? ???????[ 2012/11/26 10:05:44 ] ????????
??????????????????printf??????????????????????????о????????????????????????????????о??о?????????????ú???????C????????????????
void function(const char *format?? ...);
??????????????function??????????C?????????????????????
va_list
va_start
va_arg
va_end
????C?????????????????????Щ??
void va_start( va_list arg_ptr?? prev_param );
type va_arg( va_list arg_ptr?? type );
void va_end( va_list arg_ptr );
????va_list???????????va_start??va_arg??va_end?????????????????????????????б??е??????????????va_list????????????
???????壺typedef char * va_list??
????va_start????????????б??е????????????????????va_list?????????????????????va_arg??va_end????
????va_arg?????????????????????????б??????б????????????????????????ε???va_arg??????????va_list?????????????????????????б??е????????????
????va_end???ú?????????????????б??ú?va_start???????????????????
????va????????variable-argument?????????????????
??????Щ??????stdarg.h?У?????????????????????e????????????
#include <cstdarg>
#include <cstdio>
#include <iostream>
using namespace std;
void Output(char *szFormat?? ...)
{
va_list argptr;
char szBuf[1024];
va_start(argptr?? szFormat);
vsprintf_s(szBuf??szFormat?? argptr);
cout<<szBuf<<endl;
va_end(argptr);
}
//output the args
int ArgsCount(char *szFormat?? ...)
{
va_list argptr;
int argNomber = 0;
char *szBuf;
va_start(argptr??szFormat);
while (1)
{
szBuf = va_arg(argptr??char*);
if(strcmp(szBuf??"0") == 0)
break;
cout<<"the parameter #"<<argNomber<<" is "<<szBuf<<endl;
argNomber++;
}
va_end(argptr);
return argNomber;
}
int main()
{
char czA[] = "wql";
char czB[] = "hello";
Output("Who are you? i am %s?? %s"??czA??czB);
ArgsCount("Hello"?? "Who"??"are"??"you"??"i am"??"wql"?? "0");
return 0;
}
????1??????????????????va_list??????????????arg_ptr??????? ???????????????
????2???????va_start??????????arg_ptr??????????????????? ????????????????????????????????????
????3???????va_arg???????????????????????j.va_arg????????????????????????????????????int???
????4??????va_end??????????????????????????????????????????????????????ж??????????????ε???va_arg?? ???????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11