Size: a a a

2021 February 23

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
In Dev
Но физически ведь нет области памяти с адресом 0?
Есть
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Nastya Medveda
но NULL это не 0 же.
В плюсах 0, может быть не интом, а скажем лонгом
источник

s

std::slavik in supapro.cxx
Artöm Bakri Al-Sarmini
nullptr не указатель
ну в данном случае деталь не существенная
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
В си это возможно, в плюсах нет
источник

D

Danya in supapro.cxx
Это в Си
источник

s

std::slavik in supapro.cxx
Nastya Medveda
В некоторых языках это называется None и мне кажется это более точное название
в питоне? питон - динамическую типизацию имеет - это значит что мы можем в рантайме взять и поменять тип ссылки любой на None - и проверять тип просто - не None ли он. Плюсы и си - статичискую типизацию имеют, то есть если на этапе компиляции определено что указатель имеет тип такой - мы не можем сказать в рантайме - "а теперь это становится типом None" - соответственно пометить как либо мы можем только через значение
источник

PY

Phil Yar in supapro.cxx
эй, а касты? reinterpret
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Nastya Medveda
В некоторых языках это называется None и мне кажется это более точное название
Это точное название в другом языке
источник

s

std::slavik in supapro.cxx
Phil Yar
эй, а касты? reinterpret
мы не меняем при этом тип указателя
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Phil Yar
эй, а касты? reinterpret
Типы должны быть преобразуемы. В общем случае из foo не сделать bar, даже реинтерпретом
источник

s

std::slavik in supapro.cxx
тип который мы кастуем тот же остается
источник

LA

Liber Azerate in supapro.cxx
Artöm Bakri Al-Sarmini
Типы должны быть преобразуемы. В общем случае из foo не сделать bar, даже реинтерпретом
Почему не сделать? Сделать. Просто будет strict aliasing violation
источник

s

std::slavik in supapro.cxx
ну возможно кто-то возразит - ведь есть dynamic_cast и все такое - ну да, только для этого мы вынуждены хранить иерархию классов в таблице отдельной к которой должны обращаться
источник

PY

Phil Yar in supapro.cxx
std::slavik
тип который мы кастуем тот же остается
а есть языки, в которых это не так?😳
источник

s

std::slavik in supapro.cxx
Переслано от Mikhail Kalugin
Хранить где-то. Проще всего в ней самой, но можно (хотя и не надежно) и отдельно.
источник

s

std::slavik in supapro.cxx
Переслано от std::slavik
ну окей - отдельно, тогда нам нужно вдовесок к адресу самому еще выделять машинное слово под флаг
источник

s

std::slavik in supapro.cxx
Переслано от std::slavik
и мы получается увеличиваем размер указателей всех
источник

s

std::slavik in supapro.cxx
Переслано от std::slavik
и усложняем работу с ними
источник

s

std::slavik in supapro.cxx
Phil Yar
а есть языки, в которых это не так?😳
есть
источник

s

std::slavik in supapro.cxx
python
источник