bit-fields

    1热度

    2回答

    我有以下代码: #include <cstdint> #pragma pack(1) using MyType_t = union { uint8_t buffer[16]; struct { uint64_t a : 55; uint64_t b : 24; uint64_t c : 1; uint64_t

    -1热度

    1回答

    所以我有一个位域,像这样: unsigned int foobar:1; 然后我将它使用此代码 uint32_t code = loadCode(); structure.foobar = code & 2; 所以,如果code设置为2,将这个意味着foobar的设置为1 ,0还是未定义?我使用的确切标准实际上是C++ 11,不是纯C.

    1热度

    1回答

    用于学习高效的内存管理我想知道如何使用单个位字段来共同表示8个bool值的值,以及如何评估和设置每一位。 原因是在我自己的程序,我不会粘贴,因为成千上万的行。 在全球范围内,有百多个,bools都需要,这对FPS有很大的影响。 例如: uint8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1; if (!b0) { /

    0热度

    4回答

    我想知道为什么在我的malloc之后所有修改都不起作用。 这里是我用来说明此代码: #include <stdio.h> #include <stdlib.h> struct Age { unsigned int age : 16; unsigned int two : 2; unsigned int notToBeInitialed: 2; }; int

    0热度

    2回答

    我需要将当前时间打包到限制位模式。 顶部5bits是小时,接下来的6是分钟,接下来的6秒&其余转换回32位integrer之前被保留 我想出了一个讨厌BITAND掩模,然后字符串连接。 这看起来过于复杂& CPU昂贵。有没有更高效的&更重要的一点,优雅的方法?

    0热度

    1回答

    如何确定位域的顺序?我可以通过执行x.c来更改位域的元素,其中x是结构类型的变量。我试图掩饰它并将其打印出来,但我只能打印结构中的每个元素,而不是整个变量。我试图给一个位域的元素指定一个指针,但是它出现了一个错误。确定C编译器的位域顺序的最佳方法是什么?例如,这个结构将以什么顺序表示? struct bit_fields { unsigned int a : 6, b : 8,

    0热度

    1回答

    我想满足一些位域为3个字节的结构 #pragma pack(push, 1) typedef struct _DSTEntry { uint8_t reserved :6; uint8_t startMonth:4; uint8_t startDay:5; uint8_t endMonth:4; uint8_t endDay:5; } __at

    3热度

    3回答

    我一直在考虑在C-过程如下分配: 我实现分配给解码8字节长的长整型131809282883593如下: #include <stdio.h> #include <string.h> struct Message { unsigned int hour : 5; unsigned int minutes : 6; unsigned int s

    3热度

    1回答

    请向我解释“-Wigned-enum-bitfield”Clang警告的含义。 在我的代码我有一个struct的定义与位域: struct Options { BackgroundType backgroundType : 2; LineSpace lineSpace : 2; bool letterSpacing : 1; bool shadow : 1;

    1热度

    1回答

    我对bittorrent中的位域消息有点混淆。我已经注意到下面问题形式的混乱。 可选VS必需 位字段握手序列 完成 后发送立即我假设这是强制性的,即握手后,必须遵循一个位域消息。正确? 何时期望位域? 位域消息可以在 握手序列完成后,仅被立即发送和任何其它消息之前 发送 假设我阅读此明确虽然是可选的消息。对方仍然可以在任何消息(如请求,扼流器,解焦等)之前广播位域消息。正确吗? 在第一字节中的高位