- 1
si_node_append(&(*config), si_node_create_ex(param_name, param_value, param_flag)); // ...to the end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+134.7
si_node_append(&(*config), si_node_create_ex(param_name, param_value, param_flag)); // ...to the end
Смысл операции &(*var) непонятен.
Отдельного внимания заслуживает коментарий... мне удалось воткнуть :) оказывается, имелось в виду не "вперед, до самого конца", а "добавляем в конец списка", ага.
Правда, был круче комент в одном месте... "redirect of conclusion"...
В общем, когда вкурил что имелось в виду "перенаправление вывода", чуть не сдох со смеху :)
Смысл разве что такой. В функцию передается ссылка на безымянную временную переменную, в которой лежит копия того, на что указывает var. То есть, если функция меняет значение первого параметра, значение *var не изменится.
&(*var) результатом дает значение var
Того же самого можно получить написав var без извращений :)
Уж думал, искал тайный смысл... но увы
Лично я люблю по всему коду шило менять на мыло. Автоматически, потому что emacs.
нельзя так :)
я подобное иногда пишу когда хочу подчеркнуть что передается нечто по аддресу и как следствие может быть изменено внутри вызываемой функции.
+1...
То есть если имеется следующая процедура :
В данном случае, при возврате из функции foobar указатель p будет равен NULL, чего бы не произошло, если бы формальный параметр был объявлен не как char *&p, а как char *p.
и никакими простите формальными параметрами не пахнет... пахнет особым видом кода только ))))
А так же, что это не говнокод, а говнорефакторинг =))
класс может переопределять опреатор * так как это делает итератор...
джаст имхо