bit-fields

    9熱度

    2回答

    在C11,下面的結構工作的一個錯誤: struct S { unsigned a : 4; _Bool b : 1; }; 獲取由GCC奠定了由此使用4位的unsigned(4字節),接着是_Bool (4字節),其中使用1位,總大小爲8字節。 請注意,C99和C11明確允許_Bool作爲位域成員。在C11標準(也可能是C99太)也正在§6.7.2.1「結構和聯合說明」¶

    8熱度

    2回答

    我已經使用位域這樣的結構, struct { unsigned int is_static: 1; unsigned int is_extern: 1; unsigned int is_auto: 1; } flags; 現在我想看看這是否可以爲聯合完成,所以我修改了代碼一樣, union { unsigned int is_static:

    1熱度

    1回答

    我正在研究Windows和Linux的EBDS協議接口。我試圖將協議所需的所有數據打包到結構中,然後將結構本身和所有其他東西寫入串行端口,並將其發送到設備。 該協議的第一部分是數據封裝和封裝的部件中的一個是控制字節即配襯這樣的描述: Bit 0: Acknowledgement bit (switchs between 0 and 1 in each send). Bit 1 to 3: Dev

    5熱度

    4回答

    我有一個結構位字段(總共32位寬),我有一個32位變量。當我嘗試變量值分配給我的結構,我得到了一個錯誤: error: conversion from ‘uint32_t {aka unsigned int}’ to non-scalar type ‘main()::CPUID’ requested. struct CPUIDregs { uint32_t EAXBuf;

    4熱度

    1回答

    我想實現位填充爲我工作的一個項目,即一個簡單的軟件AFSK調制解調器。簡化協議看起來是這樣的: 0111 1110 # burst sequence 0111 1110 # 16 times 0b0111_1110 ... 0111 1110 ... ... # 80 bit header (CRC, frame counter, etc.) ...

    4熱度

    3回答

    我有點迷惑不解的以下代碼獲取如何在內存中奠定了: struct Thing { union { unsigned value:24; uint8_t bytes[3]; }; Thing(int v) :value(v) {} void foo() { printf("Thi

    1熱度

    1回答

    我想爲我的項目使用MySQL設計一個標籤式結構。 看完這個http://forge.mysql.com/wiki/TagSchema之後,我感到非常失望,因爲m2m表格設計需要這麼多join性能肯定會吸引大量數據。 我心目中是一個標籤表,每個標籤具有name和id 然後在項目表我要標記,每個項目都有一個名爲tag列,每個標籤標誌着其位指數1,否則位字段的值爲0 例如 table: tag id

    4熱度

    2回答

    看起來像Enum.GetName()不起作用如果枚舉已被裝飾了[Flags]屬性。 documentation沒有指定任何與此限制相關的內容。 我注意到調試器能夠顯示類似樹|水果。有沒有辦法檢索描述組合標誌的文本字符串? 以下代碼顯示Red。 public enum FavoriteColor { Red, Blue, WeirdBrownish, You

    5熱度

    3回答

    我的問題是關於指向奇數大小的內存塊。 比方說,我有聲明,像這樣一個struct: typedef struct{ int32 val1 : 29; int32 val2 : 26; char val3; }MyStruct; 假設聲明特定位字段的結構是desireable(爲什麼我們會使用位域不是問題)。 如果我想聲明的是指向這些領域的一個指針,我可能會嘗試這樣

    2熱度

    1回答

    在微芯片C30編譯我可以設置銷的i /使用LAT O值以這種方式寄存器: LATBbits.LATB10=1; LATBbits定義爲: typedef struct tagLATBBITS { unsigned LATB0:1; unsigned LATB1:1; unsigned LATB2:1; unsigned LATB3:1; uns