CodingStyle/C/C++: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
(Новая страница: « === Работа со строками === * не вписывать конструкции вида textbuf[len]=0 на всякий случай * если …») |
|||
Строка 22: | Строка 22: | ||
* временно отключаемые участки кода можно выключать через if (0) или #if 0 | * временно отключаемые участки кода можно выключать через if (0) или #if 0 | ||
=== Ссылки === | |||
* [http://www.viva64.com/ru/examples/ Ошибки, обнаруженные в Open Source проектах разработчиками PVS-Studio с помощью статического анализа] | |||
[[Категория:Devel]] | [[Категория:Devel]] |
Версия 14:03, 16 февраля 2014
Работа со строками
- не вписывать конструкции вида textbuf[len]=0 на всякий случай
- если известен размер копируемой строки, лучше использовать memcpy
- не рекомендуется использовать strcat и strcpy (нужен контроль границ)
Константы и переменные
- в коде не должно быть числовых констант, обозначающих символы (if (buf[i]==63)
- минимум использования числовых констант в явном виде (типа j += 25)
- параметры функции и сама функция как член класса должны иметь модификатор const, если возможно
- используйте define с осторожностью, определяя типы и константы с простыми названиями (типа BOOL и TRUE), легко натолкнуться на конфликт
Запись логических выражений
- конструкции вида if (a !=0 ) должны выглядеть как if (a)
- конструкции вида if (strcmp(...)==0) должны выглядеть как if (!strcmp())
Комментарии
- временно отключаемые участки кода можно выключать через if (0) или #if 0