Использует короткий в C плохая практика - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть чувствительный к памяти проект, который использует целочисленные значения для хранения индекса вершины в плотном дереве предшественников графа.(то, что вы генерируете, используя, например, Bellman Ford).Я точно знаю, что у меня не будет графиков с более чем 10000 вершинами, и тип данных неизменен после его создания.

Так что в моем случае плохая практика - заменять

int predecessors[blah];

на

short predecessors[blah];

, если моя работа будет использоваться в качестве библиотеки.

1 Ответ

0 голосов
/ 13 сентября 2018
  1. Избегайте преждевременной оптимизации.Измерьте влияние использования short вместо int, а затем решите, основываясь на этой информации.

  2. Как сказал @ HolyBlackCat - рассмотрите возможность использования typedef (или аналогичного), чтобы вы могли изменить базовый тип (то есть short на int) всобытие изменения требований.

  3. Если вы используете short, добавьте проверки работоспособности, чтобы избежать кого-либо, когда-нибудь заполнив 100 000 вершин в вашей библиотеке и не осознавая, что они не могут их обработать (пока тихий сбой не превратится в оченьне молчаливый на дорогом оборудовании громко врезался во что-то).

  4. Ясно документируйте, что вы можете обрабатывать только до X количества вершин.

...