Есть этот код, который компилируется с Windows sdk: < /p>
Код: Выделить всё
UINT cFiles = DragQueryFileW(hDrop, 0xFFFFFFFF, NULL, 0);
где dragqueryfilew () имеет эту подпись:
Код: Выделить всё
UINT DragQueryFileW(HDROP, UINT, LPWSTR, UINT );
и uint определяется где -то в заголовках SDK, как это:
Для платформы, где int , безусловно, 32-битный. Как обычно, такие типы, как uint , должны иметь фиксированную ширину, независимую от системной битовой, поэтому, если тот же код должен быть перекомпилирован на какой-то другой платформе, где Dragqueryfilew () каким-то образом повторно внедрится, также будет соответствующий тип , который сделает на подходящую 32-бедующую тип. Статический инструмент анализа, который рассматривает 0xffffffff постоянную и жалуется на то, что это невозможное магическое число, и вместо этого следует использовать -1 . В то время как, конечно, -1 хорош и портативен, я не могу видеть, как использование постоянного 0xffffffff может быть проблемой здесь, так как даже при портировании тип все еще будет 32 -разрядным, а константа будет хорошо.>
Подробнее здесь:
https://stackoverflow.com/questions/650 ... 2-bit-type