C知識點總結(jié)結(jié)構(gòu)體指針使用.doc
《C知識點總結(jié)結(jié)構(gòu)體指針使用.doc》由會員分享,可在線閱讀,更多相關(guān)《C知識點總結(jié)結(jié)構(gòu)體指針使用.doc(4頁珍藏版)》請在匯文網(wǎng)上搜索。
1、位操作:熟悉& | 操作。應(yīng)聘嵌入式C開發(fā)的崗位會考這方面的知識。見實驗5。結(jié)構(gòu)體 共用體如前面講的,作為函數(shù)參數(shù)和返回值,結(jié)構(gòu)體是值傳遞。結(jié)構(gòu)體變量之間可以直接賦值,結(jié)構(gòu)體在初始化時才能整體賦值。C99里新的結(jié)構(gòu)體初始化方法。初始化結(jié)構(gòu)體的指定成員變量。見C primer plusP382struct bookchar a; int b; double c ; struct book surprise = .b=3 ;即初始化指定的成員變量b,其他成員變量的值賦值為0。在內(nèi)核驅(qū)動代碼中會經(jīng)常見到。指向結(jié)構(gòu)體的指針及使用struct node int data; struct node *ne
2、xt; node1;struct node *point=&node1; 內(nèi)存模型nextdata 高地址 point - node1此時,point指向node1。即*point和node1對應(yīng)的是同一塊內(nèi)存。(*point).data等價于node1.data對應(yīng)的是同一塊內(nèi)存。(*point).next等價于node1.next對應(yīng)的是同一塊內(nèi)存。即黃色背景的內(nèi)存。point-next為什么這段代碼行得通:int offset= &( ( (struct book*) 0 )-b); /獲得成員變量b在結(jié)構(gòu)體的偏移量。等價于:struct book *ptr=NULL; int offs
3、et= & ( ptr-b) ; / &(*ptr).b ;編譯器維護關(guān)于每個結(jié)構(gòu)類型的信息,指示每個字段的字節(jié)偏移。它以這些偏移作為存儲器引用指令中的移位,從而產(chǎn)生對結(jié)構(gòu)元素的引用的代碼。結(jié)構(gòu)體的各個字段的選取完全是在編譯時處理的。參考深入理解P166頁中的一個例子。程序?qū)?nèi)存的訪問,都是先生成該內(nèi)存的地址,再訪問該內(nèi)存。結(jié)構(gòu)體對齊,及填充結(jié)構(gòu)體的對齊與填充C語言標(biāo)準(zhǔn)未嚴(yán)格規(guī)定該如何對齊,不同系統(tǒng)的對齊策略略有不同。參考深入理解P170數(shù)據(jù)對齊。linux策略:linux/IA32 (Intel Architecture 32)下,基本類型按其占用字節(jié)大小對齊。(即該類型變量的首地址能被si
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
8 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 知識點 總結(jié) 結(jié)構(gòu) 指針 使用