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

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

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

Все в мире относительно.
По сравнению с этим - да
Код: plaintext
1.
2.
3.
4.
5.
6.
procedure xxx() {
          procedure yyyy() {
               .....
         }
  ......
  yyyy() 
...
Рейтинг: 0 / 0
19.08.2020, 09:15
    #39990683
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C: что записывать в заголовочные файлы?
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
19.08.2020, 11:24
    #39990701
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C: что записывать в заголовочные файлы?
Голосую за эту рекомендацию + возможно static.
Dimitry Sibiryakov
Чем меньше ты прописываешь в заголовках, тем лучше. Только те объявления, без которых
другие модули абсолютно не могут обойтись.
Однако решусь на уточнение. В последние годы я пользовался самописным фреймворком ("сквозным": ГУИ, работа с БД, отчёты ...). Почти все были описаны в заголов-ных файлах. Я продолжил эту традицию. Главное - помнить и соответствовать стилю фреймворка. Тогда будет предсказуемость в поиске всего нужного. А в случае чего, перегрузку никто не отменял - при многогодовых доработках неизбежно.
Короче говоря, добавляю как вариант ради "предсказуемости" архитектуры. И документировать удобнее даже доксигеном. И забота о будущих поколениях.
...
Рейтинг: 0 / 0
19.08.2020, 11:35
    #39990704
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C: что записывать в заголовочные файлы?
exp98,
Классно написал.
Как можно меньше писать в заголовках, но... почти все описываю)
...
Рейтинг: 0 / 0
19.08.2020, 11:35
    #39990705
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C: что записывать в заголовочные файлы?
mini.weblab,

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

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

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

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

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

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

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

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

Критический недостаток: в отличии от вложенных функций у них нет доступа к локальным
переменным родителя. Фактически, их можно тупо скопипастить "наружу" и они ничего не
потеряют и не приобретут в плане функциональности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.08.2020, 12:59
    #39990743
C: что записывать в заголовочные файлы?
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / C: что записывать в заголовочные файлы? / 25 сообщений из 185, страница 1 из 8
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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