The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск пакетного менеджера Pacman 5.0"
Отправлено Аноним, 02-Фев-16 21:57 
> не передергивайте.

Ну давайте расскажу, как _я_ воспринимаю этот код.

30 секунд просмотра функции, и я понимаю следующее: f обозначает filename, i - instance, ret - возвращаемое значение. Имена a и b ничего не обозначают (но по коду далее видно, что они хранят длины соответственно первой и второй незаменяемых частей юнита).

Сам я systemd не пользовался, поэтому не знал, для чего нужна @ в именах юнитов. Добавим сюда ещё 5 минут гугления, какой формат имеет имя юнита, и чтения (точнее, чтения первого абзаца, содержащего символ @) http://man7.org/linux/man-pages/man5/systemd.unit.5.html (тот, кто правит код systemd имхо должен знать ту часть, что необходима для понимания данного фрагмента).

Теперь также ясно, что e - extension, p - либо part (заменяемая часть, типа tty3 с ведущим символом @), либо pointer, s - просто string, так же как циклах принято делать итерацию по i (от integer).

Из имени функции я предполагаю, что она должна заменять инстанс юнита f (на который указывает p+1) инстансом i.

"s = new" - выделение памяти.

А пример со вложенным вызовом mempcpy взят из man mempcpy и может считаться стандартным.

Возможно, я не прав и сказывается собственный сишный опыт, но для меня понять, что делает конкретно озвученная ранее строка, не проблема. При этом мне не надо постоянно переходить по разным методам, как это принято в java и c++ , у меня вся функция помещается на одном экране. И лично для меня идентификаторы p и e выглядят более "различными визуально", чем, например, "unit_name_part и unit_name_ext".

Я бы сказал, что это пример каноничного C, где идентификаторы сокращаются насколько это возможно (но не меньше), по этой же причине при итерации вы пишете "for (i=0; i<10; i++)", а не "for(index=0; index<10; index++)".

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру