powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / C: что записывать в заголовочные файлы?
25 сообщений из 185, страница 1 из 8
C: что записывать в заголовочные файлы?
    #39990570
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть функция insert_node() , которая использует вспомогательные функции:
get_node_height, ll_rotate, etc. Вспомогательные функции больше нигде не используются, и не являются частью интерфейса программы.
Вопрос: нужно ли прописывать вспогательные функции в заголовках?
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990572
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab,
Не нужно, если язык позволяет и компилятор не ругается.
В некоторых ЯП есть подпроцедуры. Что вообще замечательно.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990590
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab
Вопрос: нужно ли прописывать вспогательные функции в заголовках?

Не нужно.
Более того их желательно объявить static, чтобы не зависеть от того есть ли в других модулях функции и переменные с таким именем (если вдруг есть, то возможен ряд эффектов начиная с ошибки линковки заканчивая случайными крэшами )
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990595
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
В некоторых ЯП есть подпроцедуры. Что вообще замечательно.
К слову, начиная с С++11, есть лямбды.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990597
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblabВопрос: нужно ли прописывать вспогательные функции в заголовках?

Чем меньше ты прописываешь в заголовках, тем лучше. Только те объявления, без которых
другие модули абсолютно не могут обойтись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990601
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Да. Но это уже другой уровень)). Это уже чёрный пояс).
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990648
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
AmKad,
Да. Но это уже другой уровень)). Это уже чёрный пояс).
О чём ты говоришь? Лямбды, порой, проще, чем обычные функции...
Чёрный пояс, это перегнать вектор контейнеров произвольных типов объектов хранения в va_list. Ничо так задачка для C++, ага?
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990674
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Все в мире относительно.
По сравнению с этим - да
Код: plaintext
1.
2.
3.
4.
5.
6.
procedure xxx() {
          procedure yyyy() {
               .....
         }
  ......
  yyyy() 
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990683
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, или с этим:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if (!String.prototype.trim)
{
  (function() {
    String.prototype.trim =
        function()
        {
          var regex = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
          return this.replace(regex, "");
        };
  })();
}

До сих пор не могу понять - зачем это нужно, если прекрасно работает без этой "обёртки" и даже в примерах на Мазилле такая конструкция не используется.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990701
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голосую за эту рекомендацию + возможно static.
Dimitry Sibiryakov
Чем меньше ты прописываешь в заголовках, тем лучше. Только те объявления, без которых
другие модули абсолютно не могут обойтись.
Однако решусь на уточнение. В последние годы я пользовался самописным фреймворком ("сквозным": ГУИ, работа с БД, отчёты ...). Почти все были описаны в заголов-ных файлах. Я продолжил эту традицию. Главное - помнить и соответствовать стилю фреймворка. Тогда будет предсказуемость в поиске всего нужного. А в случае чего, перегрузку никто не отменял - при многогодовых доработках неизбежно.
Короче говоря, добавляю как вариант ради "предсказуемости" архитектуры. И документировать удобнее даже доксигеном. И забота о будущих поколениях.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990704
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,
Классно написал.
Как можно меньше писать в заголовках, но... почти все описываю)
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990705
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab,

В больших библиотеках также встречается разделение хедеров на те что для использования извне и на те что внутри библиотеки, модули друг другу объявляют. Поскольку имена будут видны вовне, то эти внутренние имена в этом случае делают с декорированием имен под имя библиотеки.

Например для функций используемых снаружи библиотеки TreeLibInsertNode() а внутренние скажем TreeLib_insert_node().

Как вариант можно посмотреть внутренние сорсы реализации crt.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990709
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я,
Имхо это только запутывает.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990711
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переходите на С++20. Там хедеры вообще не нужны больше )))
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990712
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Переходите на С++20. Там хедеры вообще не нужны больше )))

Как так?
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990716
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990717
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявления, в основном.
А, и определения шаблонов функций и классов, включая методы.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990718
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab

Вопрос: нужно ли прописывать вспогательные функции в заголовках?

НЕ НУЖНО.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990720
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читал более явный приказ - где можно и не легаси заменять хидеры на модули).
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990723
Anatoly Moskovsky
mini.weblab
Вопрос: нужно ли прописывать вспогательные функции в заголовках?

Не нужно.
Более того их желательно объявить static, чтобы не зависеть от того есть ли в других модулях функции и переменные с таким именем (если вдруг есть, то возможен ряд эффектов начиная с ошибки линковки заканчивая случайными крэшами )

другой модуль = другой ns
но static конечно нужен, он ещё и помогает понять, что ф-я нигде больше не исп-ся
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990733
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо static можно использовать анонимный namespace.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990737
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
exp98, Классно написал.
Мимо. Я добавил с точки зр. в сопровождении. Моё имхо: в любом варианте придерживаться "регулярности".
С т.зр. формального вопроса "нужно/необязат" ответы даны.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990739
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел я создать тему про приёмы понижения зависимостей между модулями, но поленился.
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990740
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devЛямбды, порой, проще, чем обычные функции...

Критический недостаток: в отличии от вложенных функций у них нет доступа к локальным
переменным родителя. Фактически, их можно тупо скопипастить "наружу" и они ничего не
потеряют и не приобретут в плане функциональности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C: что записывать в заголовочные файлы?
    #39990743
petrav
Вместо static можно использовать анонимный namespace.

говорят static лучше
авторSummary
Avoid working with anonymous namespaces if you’re working with headers. Due to default internal linkage, each translation unit will define its own unique instance of members of the unnamed namespace which can cause unexpected results, bloat the resulting executable, or inadvertently trigger undefined behavior due to one-definition rule (ODR) violations.
...
Рейтинг: 0 / 0
25 сообщений из 185, страница 1 из 8
Форумы / C++ [игнор отключен] [закрыт для гостей] / C: что записывать в заголовочные файлы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]