Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
Как правильно распечатать значение типа…

Как правильно распечатать значение типа __int64, size_t и ptrdiff_t

04 Фев 2013

Часто при разработке программы можно столкнуться с тем, что переменные типа __int64, size_t или ptrdiff_t некорректно выводятся на печать. Прежде всего, стоит упомянуть различие между этими типами данных. Так тип __int64 на 32-битной и 64-битной платформах всегда имеет размер 64 бита. Типы size_t и ptrdiff_t на 32-битной - 32 бита, а на 64-битной - 64 бита. Именно отсюда и возникает путаница и проблемы с распечаткой значений переменных этих типов.

Устранить проблему можно несколькими путями:

1. Использовать безопасные методы

Например, можно заменить printf на cout, а sprintf на boost::format или std::stringstream.

2. Использовать корректную форматную строку

а) Для типа __int64 независимо от типа компилятора (C++Builder, MSVC или GCC):

printf("%lld", i);

б) Для типов size_t и ptrdiff_t:

k0046_How_to_print__int64_ru/image1.png

Библиографический список

Популярные статьи по теме


Комментарии (0)

Следующие комментарии next comments
close comment form
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам