LINUX.ORG.RU

История изменений

Исправление arturpub, (текущая версия) :

А, ясно.

Нет hto* для 64 бит.

htonl(x & UINT32_MAX), htonl(x >> 32). Но если архитектура фикс, то я бы и париться не стал (наверное, у меня на это дело иногда случается ОКР).

не смог найти в стандарте

Я тоже не lawyer, вот цитата цитаты из википедии.

Structure and union specifiers have the same form. [ . . . ] The size of a union is sufficient to contain the largest of its members. The value of at most one of the members can be stored in a union object at any time. A pointer to a union object, suitably converted, points to each of its members (or if a member is a bit-field, then to the unit in which it resides), and vice versa.

— ANSI/ISO 9899:1990 (the ANSI C standard) Section 6.5.2.1


ps. вместо UINT32_MAX читать ~(uint32_t)0 или типа того.

Исходная версия arturpub, :

А, ясно.

Нет hto* для 64 бит.

htonl(x & UINT32_MAX), htonl(x >> 32). Но если архитектура фикс, то я бы и париться не стал (наверное, у меня на это дело иногда случается ОКР).

не смог найти в стандарте

Я тоже не lawyer, вот цитата цитаты из википедии.

Structure and union specifiers have the same form. [ . . . ] The size of a union is sufficient to contain the largest of its members. The value of at most one of the members can be stored in a union object at any time. A pointer to a union object, suitably converted, points to each of its members (or if a member is a bit-field, then to the unit in which it resides), and vice versa.

— ANSI/ISO 9899:1990 (the ANSI C standard) Section 6.5.2.1