这是工作的原始代码:
// ...
unsigned __int64 num = 57;
sprintf_s(buffer, sizeof(buffer), "%llu", num);
但是,当我尝试将此部分提取到此函数中时:
void addBuffered(void** attributeValue, char* format)
{
sprintf_s(buffer, sizeof(buffer), format, *attributeValue);
}
通过调用:
addBuffered((void**)&num, "%d");
我必须将格式参数更改为sprintf_s
from%llu
以%d
获得正确的值。有人可以解释为什么会发生这种情况以及参数的更改是否%d
会成为问题?谢谢!