string的问题
void VarArg( const std::string& formatstring, ...)
{
int nSize = 0;
char buff[255];
va_list args;
va_start(args, formatstring);
nSize = _vsnprintf( buff, sizeof(buff), formatstring.c_str(), args);
std::cout<< buff << std::endl;
}
int main()
{
VarArg( "%s","hello");
return 0;
}
上面的程序在编译过程中会出现中断,不能通过编译,
但把函数参数类型const string& 改为const char*
则能通过编译。
为什么呢?想不通,string不是可以转化为const char* 吗?