LINUX.ORG.RU

оберткой над платформозависимыми костылями и C99, там где оно есть

Stil ★★★★★
()

Системой сборки. Если есть stdint, то использовать его, если нет, то вычислить размеры типов и определить всё самому. В cmake это делается тривиально.

Reset ★★★★★
()

Какими способами можно достичь цели?

Боюсь, максимально переносимым будет только такой вариант.

// сваливаем всё это в common/types.h
// и инклюдим его везде, где надо
#ifndef КОМПИЛИМ_НА_ГОВНЕ_МАМОНТА
typedef UINT64 uint64_t;
#else
#  if defined(ГОВНО_МАМОНТА_1)
typedef UINT64 unsigned __long__long__;
#  elif defined(ГОВНО_МАМОНТА_2)
typedef UINT64 ________________________uint_64;
#  elif defined(ГОВНО_МАМОНТА_3)
// ...
#  endif
#endif
Дефайны генерить каким-нибудь cmake или колбасить руками.

ilammy ★★★
()

А нельзя ориентироваться на long long, которого если нет, то уже наверное все равно, а если есть, то он с почти нулевой вероятностью <64 бит, т.к. компиляторы подхватили его из c99? Из минусов — лонг лонг может легко быть больше 64бит.

http://bytes.com/topic/c/answers/214990-defining-int64

arturpub ★★
()

нужно 64 битное беззнаковое целое,

так это и в c99/stdint не всегда есть. Тип опциональный, наличие завист от платформы.

mashina ★★★★★
()

Хм, где-то до сих пор "эниаки" используют?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Stil

qnx 4.25. что там мне юзать вместо юзать ваткомовсих ненужностей?

пользователи проприетари должны страдать.

dimon555 ★★★★★
()

С11

Посмотрел про это в вики. Явно, что это не нужно. Копирование функциональности из POSIX библиотек и «Выражения, не зависящие от типа» с помощью макросов. OMG, куда их несет?

shamaz
()
Ответ на: комментарий от shamaz

Явно, что это не нужно.

Да, особенно _Atomic не нужен. Язык для системного программирования без встроенной поддержки атомарных операций. Годнота, чо.

AptGet ★★★
()
Ответ на: комментарий от shamaz

Копирование функциональности из POSIX библиотек

Типа комитет по Си++ все новые фичи сам изобретает, а не копипастит из всяких Бустов, где они тестируются и обкатываются.

Явно, что это не нужно.

А что нужно-то? No troll intended, мне реально интересно.

ilammy ★★★
()
Ответ на: комментарий от ilammy

А что нужно-то? No troll intended, мне реально интересно.

Ммм. Я даже не знаю. Может строки?

shamaz
()
Ответ на: комментарий от ilammy

Хотя из-за того, что C такой, какой он есть, вряд ли добавишь в него что-то ещё, что бы облегчало работу программиста, но не требовало бы сильной переделки существующих реализаций.

shamaz
()
Ответ на: комментарий от shamaz

Не, ты не читал, что я написал, да?

«C11 - не нужен»

Что-то другое было написано?

AptGet ★★★
()
Ответ на: комментарий от mashina

7.18.1.2 Minimum-width integer types

The following types are required: int_least8_t uint_least8_t int_least16_t uint_least16_t int_least32_t uint_least32_t int_least64_t uint_least64_t

Что ж вы все так прицепились к этим (u)intN_t?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.