Cyril Slobin (slobin) wrote,
Cyril Slobin
slobin

Categories:

Техническое

Вопрос к D-шинкам: а как на практике происходит переход с 32-битных платформ на 64-битные? Много ломается? Потому что я, увы, по натуре не Пушкин не практик, а теоретик, но мне кажется как-то странным, что ломается при этом код, вообще не содержащий явных упоминаний типов:

import std.stdio;

void main() {
    auto s = "hello";
    auto i = 0;
    i = s.length;
    writeln(i);
}

Под капотом для i выводится тип int, который (на уровне определения языка, независимо от платформы) 32-битный, а для s.length тип size_t, который в зависимости от платформы uint или ulong (32 или 64 бита). Беззнаковое в знаковое преобразовывать можно, а длинное в недлинное -- нет. В результате на 32-битной платформе печатает "5", а на 64-битной не компилируется. Мои философские размышления пойдут отдельно, пока у меня вопрос, как эти грабли обходят в реальном коде.

... Стоматологическое доказательство бытия Божия ...

Tags: tekniko
Subscribe

  • Из комментариев

    """Лучшие баскетболисты Средиземья -- хоббиты, несмотря на свой невысокий рост. Изобретение баскетбола они приписывают своему национальному герою…

  • Омографическое

    "Откроем полюс южный, а северный -- наверное". Даже в детстве я понимал, что "наверное" здесь употреблено не в смысле "ну может быть, если повезёт",…

  • Разное и вопрос

    "Эту реальность никакое зеркало не выдержит" (schegloff) "Хяку превращается в бяку из-за рэндаку" (из интернетов) "Система хранения отчаявшихся…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 5 comments