99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

C語(yǔ)言如何在指針中隱藏?cái)?shù)據(jù)詳解-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、硚口網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為硚口等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

編寫 C 語(yǔ)言代碼時(shí),指針無處不在。我們可以稍微額外利用指針,在它們內(nèi)部暗中存儲(chǔ)一些額外信息。為實(shí)現(xiàn)這一技巧,我們利用了數(shù)據(jù)在內(nèi)存中的自然對(duì)齊特性。

內(nèi)存中的數(shù)據(jù)并非保存在任意地址。處理器通常按照其字大小相同的塊讀取內(nèi)存數(shù)據(jù);那么考慮到效率因素,編譯器會(huì)按照塊大小的整數(shù)倍對(duì)內(nèi)存中的實(shí)體進(jìn)行地址對(duì)齊。因此在 32 位的處理器上,一個(gè) 4 字節(jié)整型數(shù)據(jù)肯定存放在內(nèi)存地址能被4整除的地方。

下面,假設(shè)系統(tǒng)中整型數(shù)據(jù)和指針大小均為 4 字節(jié)。

現(xiàn)在有一個(gè)指向整型的指針。如上所述,整型數(shù)據(jù)可以存放在內(nèi)存地址 0x1000 或者 0x1004 或者 0x1008,但是決不會(huì)存放在 0x1001 或者0x1002 或者 0x1003 或者其他不能被4整除的任何地址。所有是4整數(shù)倍的二進(jìn)制數(shù)都是以 00 結(jié)尾。實(shí)際上,這意味著對(duì)于所有指向整型的指針,它的最后兩位總是 0。

那么有 2 比特沒有承載任何信息。此處的技巧是將我們的數(shù)據(jù)放置到這兩個(gè)比特中,在需要時(shí)使用,并在通過指針解引用來訪問內(nèi)存前刪除它們。

由于 C 標(biāo)準(zhǔn)對(duì)指針位操作的支持不是很好,所以我們將指針保存為一個(gè)無符號(hào)整型數(shù)據(jù)。

下面是一段簡(jiǎn)短的簡(jiǎn)單代碼片段。完整的代碼查看 github 代碼倉(cāng)庫(kù)中的hide-data-in-ptr。

void put_data(int *p, unsigned int data)
{
	assert(data < 4);
	*p |= data;
}
unsigned int get_data(unsigned int p)
{
	return (p & 3);
}
void cleanse_pointer(int *p)
{
	*p &= ~3;
}
int main(void)
{
	unsigned int x = 701;
	unsigned int p = (unsigned int) &x;
	printf("Original ptr: %un", p);
	put_data(&p, 3);
	printf("ptr with data: %un", p);
	printf("data stored in ptr: %un", get_data(p));
	cleanse_pointer(&p);
	printf("Cleansed ptr: %un", p);
	printf("Dereferencing cleansed ptr: %un", *(int*)p);
	return 0;
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.yijiale78.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:C語(yǔ)言如何在指針中隱藏?cái)?shù)據(jù)詳解-創(chuàng)新互聯(lián)
本文URL:http://www.yijiale78.com/article12/docsdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、小程序開發(fā)、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、App開發(fā)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化