娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月30日(星期三)

2021年04月30日 | 你不得不知的C51指針小結(jié)

發(fā)布者:rho27 來源: eefocus關(guān)鍵字:C51  指針小結(jié)  指針變量 手機看文章 掃描二維碼
隨時隨地手機看文章

一. 指針變量的定義

指針變量定義與一般變量的定義類似,其形式如下:

數(shù)據(jù)類型 [存儲器類型1] * [存儲器類型2] 標(biāo)識符;


[存儲器類型1] 表示被定義為基于存儲器的指針,無此選項時,被定義為一般指針。這兩種指針的區(qū)別在于它們的存儲字節(jié)不同。一般指針在內(nèi)存中占用三個字節(jié),第一個字節(jié)存放該指針存儲器類型的編碼(由編譯時由編譯模式的默認值確定),第二和第三字節(jié)分別存放該指針的高位和低位地址偏移量。存儲器類型的編碼值如下:


存儲類型I Idata/data/bdata xdata pdata Code 編碼值 0x00 0x01 0xFE 0xFF


[存儲類型2]用于指定指針本身的存儲器空間。


char * c_ptr; int * i_ptr; long * l_ptr;

上述定義的是一般指針,c_ptr指向的是一個char型變量,那么這個char型變量位于哪里呢?這和編譯時由編譯模式的默認值有關(guān),

如果Menory Model—Variable—Large:XDATA,那么這個char型變量位于xdata區(qū):

如果Menory Model—Variable—Compact:PDATA, 那么這個char型變量位于pdata 區(qū):

如果Menory Model——Variable——Small:DATA,那么這個char型變量位于data區(qū)。

而指針c_ptr, i_ptr, l_ptr變量本身位于片內(nèi)數(shù)據(jù)存儲區(qū)中。 char * data c_ptr; int * idata i_ptr; long * xdata l_ptr;

上述定義,c_ptr, i_ptr, l_ptr變量本身分別位于data ,idata,xdata區(qū)。 char data * c_ptr; //表示指向的是data區(qū)中的char型變量,c_ptr在片內(nèi)存儲區(qū)中;

int xdata * i_ptr; //表示指向的是xdata區(qū)中的int型變量,i_ptr在片內(nèi)存儲區(qū)中;

long code * l_ptr; //表示指向的是code區(qū)中的long型變量,l_ptr在片內(nèi)存儲區(qū)中; char data * data c_ptr; //表示指向的是data區(qū)中的char型變量,c_ptr在片內(nèi)存儲區(qū)data中;

Int xdata * idata i_ptr; //表示指向的是xdata區(qū)中的int型變量,i_ptr在片外存儲區(qū)xdata中;

long code * xdata l_ptr; //表示指向的是code區(qū)中的long型變量,l_ptr在片內(nèi)存儲區(qū)xdata中;


二. 指針應(yīng)用


int x, j;

int * px, *py;

px=&x; py=&y; *px=0; py=px; *px++<=>*(px++) (*px)++<=>x++ unsigned char xdata * x;

unsinged char xdata * y;

x=0x0456;

*x=0x34 //等價于 mov dptr,#456h ; mov a,#34h; movx @dptr,a unsigned char pdata * x;

x=0x045;

*x=0x34 //等價于 mov r0,#45h ; mov a,#34h; movx @r0,a unsigned char data * x;

x=0x30;

*x=0x34 //等價于 mov a,#34h; mov 30h ,a int *px;

px=(int xdata *)0x4000; //將 xdata 型指針 0x4000 賦給 px,也就是將0x4000強制轉(zhuǎn)換為指向xdata區(qū)中的int型變量的指針,將其賦給px。 int x;

x=*((char xdata *)0x4000); //將0x4000強制轉(zhuǎn)換為指向xdata區(qū)中的int型變量的指針,從這個地址中取出值賦給變量x。 px=*((int xdata * xdata *)0x4000); //如何分析? px=*((int xdata *xdata *)0x4000);將陰影部分遮蓋,這個意思就是將0x4000強制轉(zhuǎn)換為指向xdata區(qū)中的X型變量的指針,這個X型變量就是陰影“int xdata *”,也就是0x4000指向的變量類型是一個指向xdata區(qū)中的int型變量的指針,即0x4000中放的是另外一個指針,這個指針指向的是xdata區(qū)中的int型變量。Px值放的是0x4000中放的那個指針。比如【0x4000】—【0x2000】-0x34。Px=0x2000。 x=**((int xdata * xdata *)0x4000); x中放著0x4000中放的那個指針?biāo)赶虻闹怠1热纭?x4000】—【0x2000】-0x34。


三. 指針與數(shù)組


int arr[10];

int * pr;

pr=arr; // 等價于pr=&arr[0];

這樣的話,*(pr+1)==arr[1]; *(pr+2)==arr[2]; *(arr+3)==arr[3]; *(arr+4)==arr[4];

或者 pr[0],pr[1]….代表 arr[0],arr[1]…..

可以*pr++ (等價于*(pr++)),來訪問所有數(shù)組元素,而*arr++是不行的。因為arr是常量,不能++運算 char * s1

char code str[]=”abcdefg”

s1=str; char *s1=”abcdefg”;


四. 指針與結(jié)構(gòu)體


typedef struct _data_str {

unsigned int DATA1[10];

unsigned int DATA2[10];

unsigned int DATA3[10];

unsigned int DATA4[10];

unsigned int DATA5[10];

unsigned int DATA6[10];

unsigned int DATA7[10];

unsigned int DATA8[10];

}DATA_STR;

//開辟一個外RAM空間,確保這個空間夠裝你所需要的

xdata uchar my_data[MAX_STR] _at_ 0x0000;

DATA_STR *My_Str;

My_Str=(DATA_STR*)my_data; //把你的結(jié)構(gòu)體指針指向這個數(shù)組的開頭

以后的操作就這樣:

My_Str->DATA1[0]=xxx;

My_Str->DATA1[1]=xxx;

那么你的變量就自然放到XDATA中去了.

注意定義的my_data[MAX_STR],不能隨便被操作,它只是開始的時候用來開辟內(nèi)存用的. struct student

{

char name[20];

int num;

}stu1,stu2; struct student

{

char name[20];

int num;

};

struct student stu1,stu2;

struct student *p;

p=&stu1;

訪問成員方法:

A. stu1.num

B. (*p).num; //因為“.”的優(yōu)先級高于“*”所以要加括號。

C. P->num; struct student stu[10];

struct student * p;

p=stu;


關(guān)鍵字:C51  指針小結(jié)  指針變量 引用地址:你不得不知的C51指針小結(jié)

上一篇:KEIL編譯器C51.EXE的問題
下一篇:51單片機電子時鐘C語言程序

推薦閱讀

2018 年初,德勤發(fā)布的最新《2018年全球醫(yī)療行業(yè)展望-移動醫(yī)療的變革》報告中指出2017年~2021年全球醫(yī)療支出預(yù)計將以每年4.1%的速度增長,而2012年~2016年的增速僅為 1.3%。人口老年化進程加快帶來的慢性病管理需求激增,創(chuàng)新技術(shù)一如物聯(lián)網(wǎng)(IoT)、大數(shù)據(jù)、云計算以及人工智能(AI)等的快速發(fā)展,再加上國家產(chǎn)業(yè)政策助力,都使得醫(yī)療行業(yè)成為嫁接民生問題...
“智能問題看起來深不見底,我想這是值得我奉獻一生的領(lǐng)域。” 在70年的人工智能浪潮中,馬文·明斯基(Marvin Minsky)是一個如雷貫耳的名字,與機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、虛擬現(xiàn)實、框架理論等熱門名詞緊緊聯(lián)系在一起。他是定義和發(fā)展“人工智能”的先驅(qū)者之一,也是人工智能領(lǐng)域的首位圖靈獎獲得者,被尊稱為“人工智能之父”。他的學(xué)術(shù)貢獻璀璨奪目,橫跨...
4月26日一早,江蘇揚中高新區(qū)配售電有限公司總經(jīng)理陸子雄正與勘查人員核對關(guān)于線路規(guī)劃的細節(jié)。“這條線路走向要和現(xiàn)有的增配1線和2線形成聯(lián)絡(luò),聯(lián)絡(luò)點我來負責(zé)對接。”說話間,他的電話又響了起來。 “一天接四十多個電話是常態(tài)。”陸子雄常常要在客戶、施工方和企業(yè)三方之間來回溝通,反復(fù)尋求最優(yōu)解,“今年我們計劃在試點區(qū)域內(nèi)投資1000萬元,建設(shè)...
0 引言溫度控制對于工業(yè)和日常生活等領(lǐng)域都具有廣闊的應(yīng)用前景,很多應(yīng)用領(lǐng)域,需要精度較高的恒溫控制,由于其控制具有非線性、時滯性和不確定性,用傳統(tǒng)的控制達不到好的控制效果。模糊控制是一種基于規(guī)則的控制,它直接采用語言型控制規(guī)則,出發(fā)點是現(xiàn)場操作人員的控制經(jīng)驗或相關(guān)專家的知識,其魯棒性強,干擾和參數(shù)變化對控制效果的影響被大大減弱,...

史海拾趣

問答坊 | AI 解惑

研究生畢業(yè)設(shè)計 設(shè)計題目 基于sopc技術(shù)的智能家居控制器 開提在即

我的畢業(yè)論文題目,還要嵌入uC/OS- II 大家可以提問可以發(fā)表意見。 我很明白以我的能力,能把uC/OS- II 嵌入就已經(jīng)很成功了…

查看全部問答∨

51單片機的中斷

在單片機C語言中,串口中斷是這樣實現(xiàn)的:它認為輸入時產(chǎn)生中斷,所以要判斷RI是否為1;在輸出時,將中斷關(guān)閉(具體什么原因請高手指點),即要將輸入中斷置無效(如:EA和ES任意一個或兩個),如果不這樣,輸出將不斷發(fā)送東西。而在匯編中,認為輸 ...…

查看全部問答∨

美資公司誠聘 Digital IC Design/verification Engineer

Digital IC Design/verification Engineer LSI 上海研發(fā)中心高薪誠聘存儲通訊領(lǐng)域人才,薪水待遇優(yōu)厚,部分人員有出國培訓(xùn)機會。(部門內(nèi)部推薦) 有意者請將中英文簡歷發(fā)送至:asic_tapeout@hotmail.com State/Province/County :  Shang ...…

查看全部問答∨

FSEZ1317輸出電流如何確定

下面說下我個人的理解: PIN CS類似于常規(guī)FLYBACK MOSFET下的功率檢測(電流檢測)電阻,從DATASHEET上來看,有如下地方與CS這個PIN有關(guān): 1.  Absolute Maximum Ratings:  Cs pin input voltage: -0.3V---7V 2.Vth, 門限動作電 ...…

查看全部問答∨

關(guān)于skyeye的問題。

各位大哥,有幾個關(guān)于skyeye的問題。 (1)聽說skyeye可以模擬硬件環(huán)境(包括一些外設(shè))是真的嗎? (2)winCE可以在skyeye上面使用嗎? (3)如果winCE不能用于skyeye模擬器,有什么支持winCE的能仿真外設(shè)的模擬器嗎?      &nbs ...…

查看全部問答∨

請教關(guān)于增大nor FLASH的地址變化問題

shuiyan大俠: 您在我的另一個帖子中: “NOR是線性尋址的,所以其實是不需要初始化的。只是CE下有block設(shè)備的統(tǒng)一接口,所以會在eboot中將其按照標(biāo)準(zhǔn)block設(shè)備配置一下,定義好對應(yīng)的block size, page size, block num等等。換nor的話,這里會有 ...…

查看全部問答∨

學(xué)習(xí)dsp有沒有一些仿真軟件,仿真ti的dsp

ccs能不能做到這一點?就是不要仿真器,直接在pc上仿真。 我們都沒錢,…… 像單片機那樣的有很多仿真工具,學(xué)習(xí)起來很方便。…

查看全部問答∨

LCD顯示位圖問題

顯示位圖到LCD上就是把BITMAP的數(shù)據(jù)數(shù)組的地址傳到LCD控制器的顯存,對不對??…

查看全部問答∨

求助:WINCE S3C2440 30萬像素攝像頭顯示出現(xiàn)多張相同的畫面平鋪是為什么?

具體情況:我用的LCD為800*600的屏,開發(fā)板為S3C2440,攝像頭驅(qū)動原先為130萬像素,現(xiàn)在我想弄成30萬像素,改可驅(qū)動,結(jié)果顯示在LCD上的畫面是多張相同的畫面平鋪,就是類似于電腦桌面,原先拉伸的圖片變?yōu)槠戒??請問這是怎么回事??我在注冊表中已經(jīng)把分辨 ...…

查看全部問答∨

請教一個關(guān)于CE中手寫輸入的問題

在PDA上使用Platform Builder自定義的一個操作系統(tǒng),CE5.0的。裝上CE Star 2.5后,能夠使用拼音輸入法輸入漢字,但是不能手寫輸入。屏幕為觸摸屏。請高人指教,不勝感激!…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 玉环县| 江川县| 建始县| 佛冈县| 饶平县| 土默特右旗| 通渭县| 沾益县| 紫金县| 高阳县| 镇远县| 罗山县| 辰溪县| 会同县| 耒阳市| 隆回县| 霍邱县| 吴桥县| 海丰县| 永济市| 肥乡县| 涞水县| 轮台县| 探索| 平凉市| 固原市| 蒙自县| 彩票| 滨州市| 浑源县| 长武县| 城市| 莱州市| 梓潼县| 曲水县| 巨野县| 根河市| 汤阴县| 平阴县| 青铜峡市| 含山县|