crypt of decay - обра дин [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

обра дин [Dec. 18th, 2018|07:46 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
Linkmeow!

Comments:
[User Picture]
From:[info]dolmatt
Date:December 23rd, 2018 - 01:02 pm
(Link)
Кетмар, а где в крестовом стандарте сказано, что unsigned char должен хранить значения от 0 до 255 ?
[User Picture]
From:[info]ketmar
Date:December 23rd, 2018 - 01:45 pm
(Link)
я не уверен, что там это сказано. насколько я помню, там ограничение на относительные размеры типов и на минимальный. для uchar — 8 бит минимум.
[User Picture]
From:[info]dolmatt
Date:December 23rd, 2018 - 02:05 pm

бля

(Link)
The sizes of char, short, int, long and long long in C/C++ are dependent upon the implementation of the language.
[User Picture]
From:[info]ketmar
Date:December 23rd, 2018 - 02:09 pm

Re: бля

(Link)
всегда так было. для крестов, кажется, с оговоркой, что uchar не менее восьми бит, и заодно должен представлять минимально адресуемый элемент памяти. извини, искать и перечитывать эти кучи говна, которые они стандартами называют, мне не особо охота (они ещё и денег стоят, лол).
[User Picture]
From:[info]dolmatt
Date:December 23rd, 2018 - 03:10 pm
(Link)
Короче, я понял. Стандарт языка С++ ссылается на стандарт языка C: говорится, что контент climits точно такой же, как limits.h

В свою очередь, стандарт C содержит следующие предписания:

implementation-defined values shall be equal or greater in magnitude (absolute value) to those shown, with the same sign.

number of bits for smallest object that is not a bit-field (byte)
CHAR_BIT 8

minimum value for an object of type signed char
SCHAR_MIN -127 // -(2^7-1)

maximum value for an object of type signed char
SCHAR_MAX +127 // 2^7-1

maximum value for an object of type unsigned char
UCHAR_MAX 255 // 2^8-1

minimum value for an object of type char
CHAR_MIN see below

maximum value for an object of type char
CHAR_MAX see below

If the value of an object of type char is treated as a signed integer when used in an expression, the value of CHAR_MIN shall be the same as that of SCHAR_MIN and the value of CHAR_MAX shall be the same as that of SCHAR_MAX.

Otherwise, the value of CHAR_MIN shall be 0 and the value of CHAR_MAX shall be the same as that of UCHAR_MAX.

The value UCHAR_MAX shall equal 2^CHAR_BIT-1.
[User Picture]
From:[info]dolmatt
Date:December 23rd, 2018 - 03:19 pm
(Link)
> эти кучи говна, которые они стандартами называют

В этих говностандартах на самом деле можно разобраться. И иногда полезно понимать, что там deprecated, а что вообще не прописано и не предусмотрено.