欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用union來了解內(nèi)存?

Linux愛好者 ? 來源:嵌入式Linux ? 作者:寫代碼的籃球球癡 ? 2021-06-22 17:01 ? 次閱讀

今天一個(gè)讀者朋友給我發(fā)的一段代碼,這段代碼讓他有了疑惑。

代碼如下:

#include “stdio.h”int main()

{

typedef union{

short i;

char j[2];

}DATA;

DATA a;

a.j[0] = 10;

a.j[1] = 1;

printf(“%x

”,a.i);

return 0;

}

這里說一個(gè)問題,我們從printf上看到的不一定我們想看到的,所以我們需要去變量的內(nèi)存地址一探究竟,一定要了解內(nèi)存的布局,對(duì)內(nèi)存有所了解。

上面注釋的代碼,在我的電腦中運(yùn)行的結(jié)果不相同,所以要看printf的準(zhǔn)確輸出,應(yīng)該初始化變量a。

使用gdb來查看地址,可以準(zhǔn)確看到變量?jī)?nèi)存中的數(shù)據(jù)。

什么是大小端?

這個(gè)問題在之前的文章說過,這里再重新提一下

大端模式(Big-endian),是指數(shù)據(jù)的高字節(jié),保存在內(nèi)存的低地址中,而數(shù)據(jù)的低字節(jié),保存在內(nèi)存的高地址中

小端模式(Little-endian),是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中

我們用這個(gè)再來看看我們的程序

#include “stdio.h”int main()

{

typedef union{

short i;

char j[2];

}DATA;

DATA a;

//a.j[0] = 10;

a.j[1] = 1;

printf(“%x

”,a.i);

return 0;

}

j[0]在低地址,j[1]在高地址,這個(gè)沒有什么意見吧?

內(nèi)存就是一個(gè)尺子,它是不斷變長(zhǎng)的,所以這個(gè)地址也是慢慢變大的,沒有任何問題吧。

然后,我們可以看看現(xiàn)在的輸出,從上面的輸出可以看到輸出100,也就是j[1]在高地址,j[0]在低地址,那這個(gè)計(jì)算機(jī)就是小端模式。

也可以通過查看內(nèi)存地址來確認(rèn)

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7615

    瀏覽量

    137846
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4837

    瀏覽量

    69125

原文標(biāo)題:C 語言,使用 union 了解內(nèi)存

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    虛擬內(nèi)存不足如何解決 虛擬內(nèi)存和物理內(nèi)存的區(qū)別

    虛擬內(nèi)存不足的解決方案 虛擬內(nèi)存不足是計(jì)算機(jī)用戶經(jīng)常遇到的問題,尤其是在運(yùn)行大型軟件或多任務(wù)處理時(shí)。以下是一些解決虛擬內(nèi)存不足問題的方法: 增加物理內(nèi)存(RAM) : 這是最直接的解決
    的頭像 發(fā)表于 12-04 09:14 ?611次閱讀

    虛擬內(nèi)存的作用和原理 如何調(diào)整虛擬內(nèi)存設(shè)置

    虛擬內(nèi)存,也稱為虛擬內(nèi)存管理或頁面文件,是計(jì)算機(jī)操作系統(tǒng)中的一種內(nèi)存管理技術(shù)。它允許系統(tǒng)使用硬盤空間作為額外的RAM(隨機(jī)存取存儲(chǔ)器),以彌補(bǔ)物理內(nèi)存(RAM)的不足。虛擬
    的頭像 發(fā)表于 12-04 09:13 ?821次閱讀

    DDR5內(nèi)存與DDR4內(nèi)存性能差異

    DDR5內(nèi)存與DDR4內(nèi)存性能差異 隨著技術(shù)的發(fā)展,內(nèi)存技術(shù)也在不斷進(jìn)步。DDR5內(nèi)存作為新一代的內(nèi)存技術(shù),相較于DDR4
    的頭像 發(fā)表于 11-29 14:58 ?830次閱讀

    DDR內(nèi)存故障排查方法

    和服務(wù)器中。然而,由于各種原因,DDR內(nèi)存可能會(huì)出現(xiàn)故障,影響計(jì)算機(jī)的正常運(yùn)行。 DDR內(nèi)存故障的常見癥狀 在進(jìn)行故障排查之前,了解DDR內(nèi)存故障的常見癥狀是非常重要的。這些癥狀包括:
    的頭像 發(fā)表于 11-20 14:34 ?1026次閱讀

    DDR內(nèi)存超頻技巧與注意事項(xiàng)

    青睞。 DDR內(nèi)存超頻技巧 了解內(nèi)存規(guī)格 在進(jìn)行超頻之前,首先需要了解自己內(nèi)存的規(guī)格,包括內(nèi)存
    的頭像 發(fā)表于 11-20 14:27 ?704次閱讀

    Linux內(nèi)存泄露案例分析和內(nèi)存管理分享

    作者:京東科技 李遵舉 一、問題 近期我們運(yùn)維同事接到線上LB(負(fù)載均衡)服務(wù)內(nèi)存報(bào)警,運(yùn)維同事反饋說LB集群有部分機(jī)器的內(nèi)存使用率超過80%,有的甚至超過90%,而且內(nèi)存使用率還再不停的增長(zhǎng)。接到
    的頭像 發(fā)表于 10-24 16:14 ?788次閱讀
    Linux<b class='flag-5'>內(nèi)存</b>泄露案例分析和<b class='flag-5'>內(nèi)存</b>管理分享

    內(nèi)存模組n/a怎么解決?

    一、內(nèi)存模組n/a問題概述 1.1 內(nèi)存模組的定義 內(nèi)存模組,又稱為RAM(Random Access Memory),是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)數(shù)據(jù)的硬件設(shè)備。它允許處理器快速訪問和處理數(shù)據(jù),從而
    的頭像 發(fā)表于 10-14 10:44 ?976次閱讀

    邏輯內(nèi)存和物理內(nèi)存的區(qū)別

    邏輯內(nèi)存和物理內(nèi)存是計(jì)算機(jī)系統(tǒng)中兩個(gè)重要的概念,它們?cè)谟?jì)算機(jī)的運(yùn)行和數(shù)據(jù)處理中起著至關(guān)重要的作用。 1. 物理內(nèi)存(Physical Memory) 物理內(nèi)存,也稱為RAM(Rando
    的頭像 發(fā)表于 09-27 15:38 ?970次閱讀

    如何使用反射內(nèi)存交換機(jī)

    反射內(nèi)存交換機(jī)是一種用于實(shí)現(xiàn)高速數(shù)據(jù)共享和通信的關(guān)鍵設(shè)備,以下是關(guān)于如何使用反射內(nèi)存交換機(jī)的詳細(xì)介紹:一、前期準(zhǔn)備?在開始使用反射內(nèi)存交換機(jī)之前,需要進(jìn)行以下準(zhǔn)備工作:?1.了解系統(tǒng)需
    發(fā)表于 09-14 09:23 ?0次下載

    影響內(nèi)存延遲的因素有哪些

    內(nèi)存延遲是指等待對(duì)系統(tǒng)內(nèi)存中存儲(chǔ)數(shù)據(jù)的訪問完成時(shí)引起的延期,它是衡量內(nèi)存響應(yīng)速度的重要指標(biāo)。影響內(nèi)存延遲的因素眾多,主要包括硬件因素和軟件因素兩大方面。
    的頭像 發(fā)表于 09-04 11:46 ?1965次閱讀

    內(nèi)存時(shí)鐘是什么意思

    內(nèi)存時(shí)鐘是內(nèi)存模塊中一個(gè)至關(guān)重要的參數(shù),它直接關(guān)聯(lián)到內(nèi)存模塊能夠工作的最高頻率。以下是對(duì)內(nèi)存時(shí)鐘的詳細(xì)解析,包括其定義、作用、與內(nèi)存頻率的關(guān)
    的頭像 發(fā)表于 09-04 11:45 ?1502次閱讀

    內(nèi)存的種類都有哪些?有什么區(qū)別?

    內(nèi)存,作為計(jì)算機(jī)中不可或缺的組成部分,承擔(dān)著存儲(chǔ)和交換數(shù)據(jù)的重要任務(wù)。隨著技術(shù)的不斷發(fā)展,內(nèi)存的種類也日益豐富,每種類型都有其獨(dú)特的特點(diǎn)和適用場(chǎng)景。以下是對(duì)內(nèi)存種類及其區(qū)別的詳細(xì)解析,旨在通過清晰的分類和深入的解析,幫助讀者全面
    的頭像 發(fā)表于 07-15 18:15 ?1.2w次閱讀

    聯(lián)想小新Pro 2024 AI銳龍版支持7500MHz內(nèi)存與核顯性能提升

    近日,聯(lián)想旗下的小新 Pro 2024 AI 銳龍版迎來了新的 OTA 升級(jí),并支持高達(dá) 7500MHz 的內(nèi)存頻率(實(shí)測(cè)為 7467 MT/s)。
    的頭像 發(fā)表于 04-30 15:17 ?1377次閱讀

    C語言內(nèi)存泄漏問題原理

    內(nèi)存泄漏問題只有在使用堆內(nèi)存的時(shí)候才會(huì)出現(xiàn),棧內(nèi)存不存在內(nèi)存泄漏問題,因?yàn)闂?b class='flag-5'>內(nèi)存會(huì)自動(dòng)分配和釋放。C語言代碼中堆
    發(fā)表于 03-19 11:38 ?580次閱讀
    C語言<b class='flag-5'>內(nèi)存</b>泄漏問題原理

    美光發(fā)布DDR5-6000超頻內(nèi)存,支持Intel XMP 3.0

    值得注意的是,盡管英睿達(dá)早前已終止電競(jìng)超頻內(nèi)存產(chǎn)品線鉑勝 Ballistix,卻迅速帶來了具備散熱馬甲的 Pro 內(nèi)存系列,然而此間 Pro 內(nèi)存產(chǎn)品主要追求即插即用特性,并不涉及超頻
    的頭像 發(fā)表于 02-21 16:06 ?1135次閱讀