powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нулевая дата
16 сообщений из 41, страница 2 из 2
Нулевая дата
    #40135942
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

лучше перебдеть. Тем более что не всем глобальным переменным нужен 0.
...
Рейтинг: 0 / 0
Нулевая дата
    #40135949
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv> Тем более что не всем глобальным переменным нужен 0.

C этого места поподробнее. Каким нужен не 0?
И если не 0, то что 42 или -1 или что?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нулевая дата
    #40135952
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
лучше перебдеть.

Предлагаю и значение присваивать дважды, чтобы уж наверняка.
...
Рейтинг: 0 / 0
Нулевая дата
    #40135961
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
kdv> Тем более что не всем глобальным переменным нужен 0.

C этого места поподробнее. Каким нужен не 0?
И если не 0, то что 42 или -1 или что?

Полагаю, что имелось ввиду, что некоторым глобальным переменным устанавливаются иные значения инициализации.
Например
Код: pascal
1.
2.
3.
4.
g_n1: Integer = 42;
g_n2: Integer = -1;
g_strDefaultUser: String = 'guest';
g_strDefaultLang: String = 'ru';


Ну и чтобы в общем стиле всё выглядело, и для наглядности, и нули для тех, кому ноль нужен, тоже можно ставить, и будет красиво.
Тем более, я уверен, что это оптимизируется, и при установке нуля просто ничего не происходит (хотя не проверял, но это выглядит простым и логичным).
...
Рейтинг: 0 / 0
Нулевая дата
    #40135972
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey
kdv
лучше перебдеть.

Предлагаю и значение присваивать дважды, чтобы уж наверняка.
В Lotus Notes так приходилось делать иногда.
...
Рейтинг: 0 / 0
Нулевая дата
    #40135988
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010> В Lotus Notes так приходилось делать иногда.

Серьёзно? А почему, баг / фича?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нулевая дата
    #40135989
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr

Так что в итоге, инициализировать D := 0 или D := NullDate, что на самом деле -700000?
...
Рейтинг: 0 / 0
Нулевая дата
    #40135991
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
Серьёзно? А почему, баг / фича?

На счёт лотуса не скажу, но вот при работе с аппаратурой напрямую иногда приходилось запись в ячейку зацикливать :)
...
Рейтинг: 0 / 0
Нулевая дата
    #40135995
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad
DimaBr

Так что в итоге, инициализировать D := 0 или D := NullDate, что на самом деле -700000?

НОЛЬ, не означает Null. Например Date()-Date()=0 а не отсутствие даты.
Разработчики Девок выбрали для понятия NullDate значение -700000, лично вы может выбрать своё значение, причём ЛЮБОЕ.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136006
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
лучше перебдеть.

Лучше писать хорошо. А хорошо - это коротко, чётко и без лишней воды.

YuRock
Тем более, я уверен, что это оптимизируется, и при установке нуля просто ничего не происходит (хотя не проверял, но это выглядит простым и логичным).

Там нечего оптимизировать. Можно ставить ноль, можно ставить не ноль, можно не ставить ноль - во всех случаях одинаково ничего не происходит.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136012
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Тем более, я уверен, что это оптимизируется, и при установке нуля просто ничего не происходит (хотя не проверял, но это выглядит простым и логичным).

Логично, но не так.

В других компиляторах - возможно, но Delphi компилятору всё равно:
1. Если переменная не инициализируется в коде, то компилятор помещает её в секцию ZERO_INIT - она не занимает места в .exe файле, а при загрузке в память выделяется инициализированный нулями регион памяти.
2. Если переменная инициализируется в коде любым значением (ноль/не ноль - не важно), то компилятор помещает её в read-write секцию с заданными значениями, которая хранится в .exe файле "как есть", а при загрузке в память копируется.

Соответственно, разница между G1: Integer = 0 и G1: Integer = 1 только в том, что будет сохранено в секцию .exe файла, но сама структура останется одинаковой. В то время как разница между G1: Integer и G1: Integer = 0 существенна - эти переменные хранятся в разных секциях.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136018
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker
YuRock
Тем более, я уверен, что это оптимизируется, и при установке нуля просто ничего не происходит (хотя не проверял, но это выглядит простым и логичным).

Логично, но не так.

В других компиляторах - возможно, но Delphi компилятору всё равно:
1. Если переменная не инициализируется в коде, то компилятор помещает её в секцию ZERO_INIT - она не занимает места в .exe файле, а при загрузке в память выделяется инициализированный нулями регион памяти.
2. Если переменная инициализируется в коде любым значением (ноль/не ноль - не важно), то компилятор помещает её в read-write секцию с заданными значениями, которая хранится в .exe файле "как есть", а при загрузке в память копируется.

Соответственно, разница между G1: Integer = 0 и G1: Integer = 1 только в том, что будет сохранено в секцию .exe файла, но сама структура останется одинаковой. В то время как разница между G1: Integer и G1: Integer = 0 существенна - эти переменные хранятся в разных секциях.
Спасибо за разъяснения.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136125
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам
bk0010> В Lotus Notes так приходилось делать иногда.

Серьёзно? А почему, баг / фича?
Баг. Народ сильно ругался, когда дошло.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136385
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey
_Vasilisk_
Не помню. Или 0, или -1.

Оба значения странные, мягко говоря. Вообще, нулевая дата это (-DateDelta);

Дата, как непрерывная величина в обе стороны от нуля, любое значение теоретически имеет допустимым. Другое дело, что, к примеру, даты до предполагаемого образования Земли не имеют практического смысла и мб использованы как магическое значение "NULL". Или же это мб нижняя граница Double, для простоты только целая часть.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136397
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
любое значение теоретически имеет допустимым

Нам не нужно теоретически, у нас есть вполне конкретные рамки обозначенные для TDateTime.
...
Рейтинг: 0 / 0
Нулевая дата
    #40136408
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey
Fr0sT-Brutal
любое значение теоретически имеет допустимым

Нам не нужно теоретически, у нас есть вполне конкретные рамки обозначенные для TDateTime.

А, они лимит искусственно ввели
The maximal correct date supported by TDateTime values is limited to 12/31/9999 23:59:59:999
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нулевая дата
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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