Выбор ответа Middle Типы и неопределённое поведение обновлено

Размер long на Windows и Linux

Вопрос

Чему обычно равен sizeof(long) на 64-битной Windows (MSVC) и на 64-битном Linux (GCC)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 4 и 8 байт. Windows использует модель LLP64 (long 32 бита, long long и указатели 64), Linux и macOS LP64 (long и указатели 64).

Варианты ответа

  1. 8 и 8 байт
  2. 4 и 4 байта
  3. 8 и 4 байта
  4. 4 и 8 байтправильный ответ

Разбор

Windows использует модель LLP64 (long 32 бита, long long и указатели 64), Linux и macOS LP64 (long и указатели 64). Поэтому long непереносим, а для фиксированной ширины берут std::int64_t. Остальные варианты не соответствуют ни одной из распространённых моделей данных для этих платформ.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.