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必需 位字段握手序列 完成 後發送立即我假設這是強制性的,即握手後,必須遵循一個位域消息。正確? 何時期望位域? 位域消息可以在 握手序列完成後,僅被立即發送和任何其它消息之前 發送 假設我閱讀此明確雖然是可選的消息。對方仍然可以在任何消息(如請求,扼流器,解焦等)之前廣播位域消息。正確嗎? 在第一字節中的高位