最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請教一個小問題,結(jié)構(gòu)體定義時這樣子,不知是怎么用的?

作者:liping_88 欄目:DSP技術(shù)
請教一個小問題,結(jié)構(gòu)體定義時這樣子,不知是怎么用的?
struct GPACTRL_BITS {        // bits   DESCRIPTION
   Uint16 QUALPRD0:8;        // 7:0    QUAL period
   Uint16 QUALPRD1:8;        // 15:8   QUAL period
   Uint16 QUALPRD2:8;        // 23:16  QUAL period
   Uint16 QUALPRD3:8;        // 31:24  QUAL period  
};

:8這樣表示什么意思?

謝謝。。

2樓: >>參與討論
liping_88
自己頂一下。
我估計是沒有什么用,只是用于指示說明一下吧。

3樓: >>參與討論
szzhengjin
當然有用啦
就是只用其中的8位,若有同別的變量聯(lián)合時,你試一下亂用,肯定讓你的內(nèi)存數(shù)據(jù)亂跳

4樓: >>參與討論
tjsheep
占16bit位置,只用8bit ,相當于用align內(nèi)存對齊作用
 
5樓: >>參與討論
zgl7903
位域定義,:8占8個位
但是整個結(jié)構(gòu)體占多少空間,依不同的編譯器有不同的結(jié)果,講求執(zhí)行效率的,每個變量占1個獨立空間,講求存儲密度的,會組合成最小空間的變量。但對C語言訪問都無所謂,這些都有編譯器幫你搞定.

6樓: >>參與討論
liping_88
謝謝,我想自己已經(jīng)明白了。
我應該可以這樣認為:

對于整個結(jié)構(gòu)體一共占用了4*8=32個位,

如果我定義一個變量

struct GPACTRL_BITS tTemp;

那么tTemp.QUALPRD0 = 0xaa 就意味著將32位空間的低8位賦值0xaa了。

如果對IO這樣定義再操作就方便了。

例如:

struct GPADAT_BITS {          // bits   DESCRIPTION
   Uint16 GPIO0:1;            // 0      GPIO0   
   Uint16 GPIO1:1;            // 1      GPIO1
   Uint16 GPIO2:1;            // 2      GPIO2
   Uint16 GPIO3:1;            // 3      GPIO3    
   Uint16 GPIO4:1;            // 4      GPIO4
   Uint16 GPIO5:1;            // 5      GPIO5
   Uint16 GPIO6:1;            // 6      GPIO6    
   Uint16 GPIO7:1;            // 7      GPIO7
   Uint16 GPIO8:1;            // 8      GPIO8
   Uint16 GPIO9:1;            // 9      GPIO9    
   Uint16 GPIO10:1;           // 10     GPIO10
   Uint16 GPIO11:1;           // 11     GPIO11       
   Uint16 GPIO12:1;           // 12     GPIO12
   Uint16 GPIO13:1;           // 13     GPIO13
   Uint16 GPIO14:1;           // 14     GPIO14
   Uint16 GPIO15:1;           // 15     GPIO15
   Uint16 GPIO16:1;           // 16     GPIO16   
   Uint16 GPIO17:1;           // 17     GPIO17
   Uint16 GPIO18:1;           // 18     GPIO18
   Uint16 GPIO19:1;           // 19     GPIO19   
   Uint16 GPIO20:1;           // 20     GPIO20
   Uint16 GPIO21:1;           // 21     GPIO21
   Uint16 GPIO22:1;           // 22     GPIO22    
   Uint16 GPIO23:1;           // 23     GPIO23
   Uint16 GPIO24:1;           // 24     GPIO24
   Uint16 GPIO25:1;           // 25     GPIO25    
   Uint16 GPIO26:1;           // 26     GPIO26
   Uint16 GPIO27:1;           // 27     GPIO27       
   Uint16 GPIO28:1;           // 28     GPIO28
   Uint16 GPIO29:1;           // 29     GPIO29
   Uint16 GPIO30:1;           // 30     GPIO30
   Uint16 GPIO31:1;           // 31     GPIO31
};

struct GPADAT_BITS tIOs;

tIOs.GPIO31 = 0;

就將IO口的31數(shù)據(jù)位清零了,其它的不會受影響。

謝謝大家的幫助,順便再問一下,結(jié)構(gòu)體這樣訪問會不會增加代碼長度影響速度??? 

7樓: >>參與討論
computer00
一般會生成位操作的代碼,例如與,或等操作。
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
同行一起來將DSP仿真器使用情況羅列(廣告勿擾!)
需求諧波測量芯片、方案或技術(shù)
買基于dm642的h264成熟代碼。!!!!!!!!!!!!!!!!!!!!!
這樣接可以嗎???
用T6963C的進來幫幫俺
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號