CodingStyle/C/C++: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 26: Строка 26:
=== Ссылки ===
=== Ссылки ===
* [http://www.viva64.com/ru/examples/ Ошибки, обнаруженные в Open Source проектах разработчиками PVS-Studio с помощью статического анализа]
* [http://www.viva64.com/ru/examples/ Ошибки, обнаруженные в Open Source проектах разработчиками PVS-Studio с помощью статического анализа]
* [http://www.viva64.com/ru/b/0391/ 42 рекомендации по программированию на C++]


[[Категория:Devel]]
[[Категория:Devel]]

Версия 13:57, 26 мая 2016

Общий подход

  • не использовать C, если проект пишется на C++. Со строками нужно работать тоже в соответствии с С++ стилем и используемым фреймворком.
  • при использовании С++ нужно использовать все удобства, которые он предоставляет.

Работа со строками

  • не вписывать конструкции вида 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

Ссылки