2013-05-24 3 views
2

vswprintf_s에서 두 번째 인수 인 : msdn link는 vswprintf_s 버퍼의 크기 또는 numberofElements

int vswprintf_s(
    wchar_t *buffer, 
    size_t numberOfElements, 
    const wchar_t *format, 
    va_list argptr 
); 

MSDN 그것을 할 상태 이후 두 번째 요소에 대한 혼란 스러워요 :

numberOfElements 버퍼의 크기.

그러나 인수의 이름이 달리 제시 : 내가 가지고있는 것 인 경우에 요소의 실제 수는

그래서 출력 버퍼에 복사 할 :

void print(wchar_t* format, ...){ 
wchar_t outString[1024]; 

va_list arguments; 

va_start(arguments, format); 
vswprintf_s(outString, sizeof(outString), format, arguments); 
va_end(arguments); 
} 

내가 가진 것을 (버퍼의 크기) 또는 :

vswprintf_s(outString, sizeof(outString)/sizeof(outString[0]), format, arguments); 

알려주세요.

답변

2

요소의 수입니다.

당신은 MSDN 문서의 최신 버전을 보면 (당신이 인용 된 URL의 (v=vs.80) 부분을 제거), 그것은 말한다 :

numberOfElements : 문자 버퍼의 크기입니다.

일반적으로 윈도우 기능의 "폭"버전의 문자 수를 사용하는 (그리고 "문자가"논리적 문자 (실제로 코드 단위),하지 char들. 의미), 크기를 바이트 없습니다.

+0

감사합니다. @jamesdlin 그게 도움이됩니다! – brainydexter