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

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

typedef __packed struct的問(wèn)題

作者:modaming 欄目:嵌入式系統(tǒng)
typedef __packed struct的問(wèn)題
typedef __packed struct READ_Command
{
    u_char code;
    u_int addr;
    u_char len;
} READ_Command;


typedef  struct READ_Command
{
    u_char code;
    u_int addr;
    u_char len;
} READ_Command;
的區(qū)別是什么。

2樓: >>參與討論
modaming
re:typedef __packed struct的問(wèn)題
應(yīng)該是這樣:
typedef __packed struct READ_Command
{
    u_char code;
    u_int addr;
    u_char len;
} READ_Command;


typedef  struct
{
    u_char code;
    u_int addr;
    u_char len;
} READ_Command;
的區(qū)別是什么啊?

3樓: >>參與討論
figos
沒(méi)有__packed的會(huì)出現(xiàn)字對(duì)齊等
也就是,CHAR型的有可能是占用4個(gè)字節(jié)的長(zhǎng)度的內(nèi)存空間
有__packed 的就不會(huì),就肯定是1個(gè)字節(jié)的內(nèi)存空間

4樓: >>參與討論
iamatyro
請(qǐng)問(wèn)
這個(gè)__packed 是關(guān)鍵字還是什么數(shù)據(jù)類型?是C還是C++的?我覺(jué)得沒(méi)有見過(guò).
有人能指點(diǎn)嗎?

5樓: >>參與討論
figos
gcc編譯器的關(guān)鍵字
 
6樓: >>參與討論
iamatyro
謝謝樓上
謝謝樓上的指點(diǎn)!

7樓: >>參與討論
iamatyro

經(jīng)常看到有 _xxx _或 __xxx 的一類變量,總是感覺(jué)這樣定義一個(gè)變量好象與不加前綴"_"及"__"的變量定義不一樣,而是有一些特殊的意味,但我是一個(gè)菜鳥不能深解,還望大蝦指教!

8樓: >>參與討論
happyfeng
注意
_packed只是某種編譯器的格式壓縮,有的是pack呢,對(duì)不同的CPU壓縮的對(duì)齊方式也不一樣

9樓: >>參與討論
太陽(yáng)草
我想再請(qǐng)問(wèn)一下
figos說(shuō)的“CHAR型的有可能是占用4個(gè)字節(jié)的長(zhǎng)度的內(nèi)存空間”
可否幫我舉個(gè)例子,在什么情況下占用4個(gè)字節(jié)呢,我沒(méi)遇見過(guò)呢。
謝謝~!

10樓: >>參與討論
figos
vc下
在VC下如果定義一個(gè)
typedef  struct
{
    u_CHAR code;
    u_int addr;
    u_CHAR len;
} READ_Command;
則由于其默認(rèn)是4個(gè)BYTE對(duì)齊,所以code和len將占用一個(gè)字節(jié)空間,當(dāng)會(huì)耗掉4個(gè)字節(jié)空間(3個(gè)字節(jié)沒(méi)有),所以我就說(shuō)“占4個(gè)字節(jié)空間”,可能會(huì)誤道人,不好意思。
在gcc下我想也會(huì)出現(xiàn)同樣的情況。

>我想再請(qǐng)問(wèn)一下
>
>figos說(shuō)的“CHAR型的有可能是占用4個(gè)字節(jié)的長(zhǎng)度的內(nèi)存空間”
>可否幫我舉個(gè)例子,在什么情況下占用4個(gè)字節(jié)呢,我沒(méi)遇見過(guò)呢。
>謝謝~!



11樓: >>參與討論
jacksting
不止vc下面
32位的系統(tǒng)里面的內(nèi)存數(shù)據(jù)的存取是32位的,處理的時(shí)候都是4個(gè)字節(jié)為單位,通常也就是int的長(zhǎng)度。如果不定義壓縮方式,也就是編譯選項(xiàng)沒(méi)有諸如#pragma pack(1)之類的,那么系統(tǒng)會(huì)進(jìn)行4字節(jié)對(duì)齊。
typedef  struct
{
    u_char code;/*占了4個(gè)字節(jié)*/
    u_int addr;
    u_char len;
} READ_Command;
READ_Command *ptCli;
如果這個(gè)指針指向了網(wǎng)絡(luò)接收來(lái)的數(shù)據(jù),那么ptCli->len很可能就不是你要的了。


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
何謂嵌入式系統(tǒng)
啟動(dòng)代碼、BootLoader、BSP、驅(qū)動(dòng)程序 之區(qū)別聯(lián)系?
請(qǐng)教PowerPC CPU型號(hào)
請(qǐng)大俠指點(diǎn)!進(jìn)來(lái)看看吧,你有沒(méi)有碰到這樣的問(wèn)題?
請(qǐng)問(wèn)高手
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)