FreeBasic
Главная
Вход
Регистрация
Среда, 25.03.2026, 17:46Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Корректен ли хедер?
DarkDemonДата: Суббота, 24.01.2026, 12:06 | Сообщение # 16
Генерал-майор
Группа: Друзья
Сообщений: 294
Репутация: -1
Статус: Offline
Цитата zamabuvaraeu ()
Вместо единичек, двоек и троек лучше бы ввести именованные константы INITSTAGE_MEMORY, INITSTAGE_WINDOW или INITSTAGE_FILE, чтобы понятно было из текста какой сейчас шаг инициализации (а не циферки запоминать).

Именованные константы имеет смысл заводить если они будут использоваться где-то ещё.
А так по сути разницы нет, что ты напишешь коммент на 1 строчку, что заведёшь ENUM на ту же 1 строчку.
Про FOR думал, чтобы размотать портянку деинита обратно - наверное можно, на вид более структурно,
не нужно анализировать логику, но и гибкости меньше, т.е. оно идёт в одну сторону, пропуск шагов возможен
через EXIT SELECT, тут скорее вопрос нужно ли крутить инит до конца и так же деинит от конца, если
нужно - то FOR самый разумный вариант.
 
zamabuvaraeuДата: Воскресенье, 25.01.2026, 20:43 | Сообщение # 17
Полковник
Группа: Друзья
Сообщений: 187
Репутация: 5
Статус: Offline
Цитата sashasold ()
насколько я помню, для того чтобы правильно завершалась программа, из любого места, есть Sub Destructor. Который выполняется перед закрытием программы.Я не сталкивался, но часто мелькает про утечку памяти и ресурсов. Вот вписываем туда закрытие файлов, сохранение чего надо, и освобождение ресурсов.
Тогда должно срабатывать и от End в любом месте.
Неправда:
…для того чтобы правильно завершалась программа…
…часто мелькает про утечку памяти и ресурсов. Вот вписываем туда закрытие файлов, сохранение чего надо, и освобождение ресурсов…

Правда:
Операционная система прекрасно знает кто создал память, сколько создали, какие ресурсы и HANDLE есть у программы, какие потоки.
Когда процесс завершается, все ресурсы изымаются обратно системой, независимо от того, сделал это программист или нет.
Так что: никаких утечек памяти, ресурсов и дескрипторов после завершения процесса быть не может.
 
DarkDemonДата: Воскресенье, 25.01.2026, 22:34 | Сообщение # 18
Генерал-майор
Группа: Друзья
Сообщений: 294
Репутация: -1
Статус: Offline
Утечка памяти это такой процесс, который возникает в процессе работы программы из-за ошибки программиста.
Т.е. заводится память и не уничтожается равнозначно заведённой. Система без проблем возвращает себе память
при завершении программы, правда при многократном отсутствии деинита множества устройств система может
зависнуть или выпасть в BSOD(это зависит от качества драйверов), поэтому деинициализация - всё таки более
желательна, чем жёсткий "возврат" ресурсов системой. С памятью проблем обычно не возникает, а вот с
устройствами - может быть.

Деструктор это механизм ООП, данная парадигма регламентирует использовать конструкторы и деструкторы объектов,
по факту это обычные процедуры, когда создаётся объект - это прописано программистом, а когда уничтожается -
либо прописано, либо списывается на автоматику(компилятор решает, на какой ветке кода объект уже больше
не используется и делает деструкт, это уничтожает всю память заведённую на свойства объекта и все пользовательские
инициализации сделанные в конструкторе руками, приходится так же прописывать в деструкторе руками).

Но вы это всё и так знаете.
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: