Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
“V401. The structure's size can be decreased via changing the fields' order. <…>”Видимо, имеются в виду потери из-за выравнивания. В приведённом примере второе поле (адрес) должно быть выровнено по 4-байтовой границе. Поэтому после первого поля придётся добавить ещё три байта. А если переставить поля местами, то мелкие можно скомпоновать друг с другом, потери на выравнивание будут меньше.
На данный момент я не могу понять как это возможно
“V525. The code containing the collection of similar blocks. Check items X, Y, Z,… in lines N1, N2, N3,” – ложные срабатывания.А почему эти срабатывания ложные? Можно пару примеров кода?
По данному предупреждению в основном были обнаружены магические цифры в процедурах рисования, как то: установка различных отступов и смещений.Хм… Не знаю, что у вас за проект, но вам не кажется, что такие вещи как размер отступов желательно вынести в некий шаблон или, возможно, в описание стиля, подобное CSS? Во всяком случае отделить от кода. Иначе могут начаться проблемы при попытке поддержать различные скины или лэйауты.
QString ContactComponentModel::formatPhone(QString& phone) {
if (phone.length() == 5) {
return phone.insert(2, '-').insert(4, '-');
// return phone.substring(0, 1) + "-" + phone.substring(1, 3) + "-" + phone.substring(3, 5);
}
if (phone.length() == 6) {
return phone.insert(2, '-').insert(5, '-');
// return phone.substring(0, 2) + "-" + phone.substring(2, 4) + "-" + phone.substring(4, 6);
}
if (phone.length() == 7) {
return phone.insert(3, '-').insert(6, '-');
// return phone.substring(0, 3) + "-" + phone.substring(3, 5) + "-" + phone.substring(5, 7);
}
if (phone.length() == 10) {
return phone.insert(4, '-').insert(7, '-').insert(9, '-');
// return phone.substring(0, 3) + "-" + phone.substring(3, 6) + "-" + phone.substring(6, 8) + "-" + phone.substring(8, 10);
}
if (phone.length() == 11) {
return phone.insert(1, '-').insert(5, '-').insert(9, '-').insert(12, '-');
// return phone.substring(0, 1) + "-" + phone.substring(1, 4) + "-" + phone.substring(4, 7) + "-" + phone.substring(7, 9) + "-" + phone.substring(9, 11);
}
return phone;
}
* This source code was highlighted with Source Code Highlighter.QString ContactComponentModel::formatPhone(QString& phone) {
const char *fix[] = {
"\05\02\04",
"\06\02\05",
"\07\03\06",
"\12\04\07\11",
"\13\01\05\11\14"
};
for (int i = 0, size = sizeof(fix)/sizeof(char*); i < size; i++) {
const char *s = fix[i];
if (phone.length() != *s)
continue;
while (*(++s))
phone.insert(*s, QLatin1Char('-'));
}
return phone;
}
* This source code was highlighted with Source Code Highlighter.
Опыт статического анализа Qt-программы с использованием PVS-Studio