由于某种原因,我无法得到这个工作:
void examplefunctionname(string str, ...){
...
va_start(ap, str.c_str());
Run Code Online (Sandbox Code Playgroud)
我也没有得到这个工作:
void examplefunctionname(string str, ...){
...
int len = str.length();
char *strlol = new char[len+1];
for(int i = 0; i < len; i++){
strlol[i] = str[i];
}
strlol[len] = 0;
va_start(ap, strlol);
Run Code Online (Sandbox Code Playgroud)
但这样做:
void examplefunctionname(const char *str, ...){
...
va_start(ap, str);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何使用字符串而不是const char *那里?
我打电话时输出随机数 examplefunctionname("%d %d %d", 1337, 1337, 1337)
从文档:
va_start(va_list ap, last)...参数last是变量参数列表之前的最后一个参数的名称,即调用函数知道类型的最后一个参数.
你已经在你的工作示例中正确地完成了这个:va_start(ap, str),并且str是最后一个已知的参数.但在另外两个例子中,你将奇怪的东西传递给了va_start.
| 归档时间: |
|
| 查看次数: |
5469 次 |
| 最近记录: |