경고 : '(stride * 4u)'의 'unsigned int'에서 '{short short unsigned int}'로의 변환이 C에서 잘못 형성되었습니다. ++ 11 -Wnarrowing]부호없는 int에서 short unsigned int 로의 변환
내가는 MinGW에서 다음 코드 컴파일이 경고를 얻고 왜 알아낼 수 없습니다 : 그 안에 그것은 stride * sizeof(gs_scalar)
에 대해 불평
unsigned stride = 3;
D3DVERTEXELEMENT9 NORMALELEMENT =
{ 0, stride * sizeof(gs_scalar), D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 };
if (useNormals) stride += 3;
(gs_scalar입니다 float
를) 중괄호,하지만 나는 어떻게 보이지 않는다. 그의 좁은 변환은 sizeof
바이트 수를 반환하기 때문입니다. stride
의 데이터 형식을 WORD, DWORD, CHAR, everything으로 변경하려고 시도했지만 동일하거나 유사한 경고가 계속 나타납니다.
중괄호 초기화를 사용하면 C++ 11에서 변환을 축소 할 수 없습니다.그 의도가 명백한 캐스트에서'stride * sizeof (gs_scalar)'를 래핑하려고 시도 했습니까? – goji
C++ 11에서는 * 오류 * 경고가 아닙니다 ... –