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

  • Же не манж па сис жур

    Лежал в больнице, прооперировали, выписали, все хорошо. Собственно, дома уже с пятницы, но первые два дня было не до ЖЖ. Ачивки: впервые в жизни был…

  • Лытдыбр

    Впервые в жизни проехал на "диаметральной" электричке, от Щукинской до Царицыно. Всю вторую половину дороги планировал, как бы мне выйти так, чтобы…

  • Масштабы

    Для многих москвичей путь от дома до работы можно нарисовать на карте мира. Школьные карты, которые вешают в кабинетах на стену, имеют обычно…

  • 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