Пользователи




Ресурсы для разработчиков

Блог

05.02.2010 Ключ /Wp64 и ошибка с обработкой шаблонов
Занимаясь продвижением анализатора Viva64 (из состава PVS-Studio) мы часто комментируем ключ /Wp64 из Microsoft Visual C++.»

03.02.2010 Параллельные заметки №1 – технология OpenMP
В ближайшие несколько постов мы расскажем о практическом использовании многоядерных процессоров.»

29.01.2010 64-битные технологии - еще одно направление в современном программном обеспечении
В блогах и форумах довольно много говорится о многоядерных процессорах, как очевидном этапе развития компьютерных систем.»

Blog RSS

Новости

2.02.2010 На нашем сайте стали доступны "Уроки разработки 64-битных приложений на языке Си/Си++".»

1.02.2010 Выпущена новая версия PVS-Studio 3.45!»

21.01.2010 Выпущена новая версия PVS-Studio 3.44!»

Новости RSS

Статьи

10.12.2009 Вопросы и ответы по PVS-Studio (PVS-Studio FAQ)
В документе собраны некоторые вопросы и ответы по анализатору кода PVS-Studio компании ООО "СиПроВер".»

09.12.2009 Вопросы и ответы по библиотеке VivaCore (VivaCore FAQ)
В документе собраны некоторые вопросы и ответы по библиотеке анализа Си/Си++ кода VivaCore компании ООО "СиПроВер".»

23.11.2009 PVS-Studio: использование функции "Mark as False Alarm"
В статье приведены описание и пример использования новой функции PVS-Studio 3.40 "Mark as False Alarm" ("Пометить как ложное срабатывание").»

Статьи RSS

Документация

PVS-Studio Send comments on this topic.
V201. Explicit type conversion. Type casting to memsize

Данное предупреждение может быть получено, если вы используете режим поиска явных приведений типов. Оно информирует о наличии явного приведения к memsize типу, что может маскировать одну из следующих ошибок: V101, V102, V104, V105, V106, V108, V109. Вы можете обратиться к приведенному списку предупреждений, чтобы выявить причину появления диагностирующего сообщений V201.

Учтите, что, скорее всего, большинство предупреждений этого типа будет выдано на корректный код. Приведем несколько примеров корректного и некорректного кода, на который будет выдано данное предупреждение.

Примеры некорректного кода.

 
int i;
ptrdiff_t n;
...
for (i = 0; (ptrdiff_t)(i) != n; ++i) {   //V201
  ...
}
unsigned width, height, depth;
...
size_t arraySize = size_t(width * height * depth);   //V201

Примеры корректного кода.

 
const size_t seconds = static_cast<size_t>(60 * 60);   //V201
unsigned *array;
...
size_t sum = 0;
for (size_t i = 0; i != n; i++) {
  sum += static_cast<size_t>(array[i] / 4);   //V201
}
unsigned width, height, depth;
...
size_t arraySize =
size_t(width) * size_t(height) * size_t(depth);    //V201

Смотрите также:

memsize-типы

ограничения анализатора кода

явное приведение типов