真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言函數(shù)實驗報告心得6 c語言函數(shù)實訓(xùn)報告

c語言實訓(xùn)心得3000字

你可以這樣寫:

創(chuàng)新互聯(lián)是一家專業(yè)提供南宮企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、成都做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為南宮眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

下面是我的實訓(xùn)心得:

一、明確學(xué)習(xí)目的

學(xué)習(xí)編程對大多數(shù)IT業(yè)人員來說都是非常有用的。學(xué)編程,做一名編程人員,從個人角度講,可以解決在軟件使用中所遇到的問題,改進(jìn)現(xiàn)有軟件,可以為自己找到一份理想的工作添加重要得砝碼,有利于在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟件產(chǎn)業(yè)做出應(yīng)有的貢獻(xiàn),一名優(yōu)秀的程序員永遠(yuǎn)是被爭奪的對象。學(xué)習(xí)編程還能鍛煉思維,使我們的邏輯思維更加嚴(yán)密;能夠不斷享受到創(chuàng)新的樂趣,將一直有機會走在高科技的前沿,因為程序設(shè)計本身是一種創(chuàng)造性的工作。知識經(jīng)濟(jì)時代給我們帶來了無限的機會,要想真正掌握計算機技術(shù),并在IT行業(yè)里干出一番事業(yè)來,有所作為,具有一定的編程能力是一個基本條件和要求。

二、打好基礎(chǔ)

學(xué)編程要具備一定的基礎(chǔ),總結(jié)之有以下幾方面:

1、數(shù)學(xué)基礎(chǔ) 從計算機發(fā)展和應(yīng)用的歷史來看計算機的數(shù)學(xué)模型和體系結(jié)構(gòu)等都是有數(shù)學(xué)家提出的,最早的計算機也是為數(shù)值計算而設(shè)計的。因此,要學(xué)好計算機就要有一定的數(shù)學(xué)基礎(chǔ),出學(xué)者有高中水平就差不多了。

2、邏輯思維能力的培養(yǎng)學(xué)程序設(shè)計要有一定的邏輯思維能力,“邏思力”的培養(yǎng)要長時間的實踐鍛煉。要想成為一名優(yōu)秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復(fù)的實踐、觀察、分析、比較、總結(jié)中逐漸地積累。因此在學(xué)習(xí)編程過程中,我們不必等到什么都完全明白了才去動手實踐,只要明白了大概,就要敢于自己動手去體驗。誰都有第一次。有些問題只有通過實踐后才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。

三、注意理解一些重要概念

一本程序設(shè)計的書看到的無非就是變量、函數(shù)、條件語句、循環(huán)語句等概念,但要真正能進(jìn)行編程應(yīng)用,需要深入理解這些概念,在理解的基礎(chǔ)上應(yīng)用,不要只簡單地學(xué)習(xí)語法、結(jié)構(gòu),而要吃透針這些語法、結(jié)構(gòu)的應(yīng)用例子,做到舉一反三,觸類旁通。

四、掌握編程思想

學(xué)習(xí)一門語言或開發(fā)工具,語法結(jié)構(gòu)、功能調(diào)用是次要的,最主要是學(xué)習(xí)它的思想。關(guān)鍵是學(xué)一種思想,有了思想,那么我們就可以觸類旁通。

五、多實踐、多交流

掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經(jīng)常自己動手設(shè)計程序,具體設(shè)計時不要拘泥于固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進(jìn)行程序設(shè)計是創(chuàng)造性思維應(yīng)用的體現(xiàn),也是培養(yǎng)邏輯思維的好方法。

六、養(yǎng)成良好的編程習(xí)慣

編程入門不難,但入門后不斷學(xué)習(xí)是十分重要的,相對來說較為漫長。在此期間要注意養(yǎng)成一些良好的編程習(xí)慣。編程風(fēng)格的好壞很大程度影響程序質(zhì)量。良好的編程風(fēng)格可以使程序結(jié)構(gòu)清晰合理,且使程序代碼便于維護(hù)。如代碼的縮進(jìn)編排、變量命令規(guī)則的一致性、代碼的注釋等。

七、上網(wǎng)學(xué)編程

在網(wǎng)上可以學(xué)到很多不同的編程思想、方法、經(jīng)驗和技巧,有大量的工具和作品及相關(guān)的輔導(dǎo)材料供下載。

八、加強計算機理論知識的再學(xué)習(xí)

學(xué)編程是符合“理論→實踐→再理論→再實踐”的一個認(rèn)識過程。一開始要具有一定的計算機理論基礎(chǔ)知識,包括編程所需的數(shù)學(xué)基礎(chǔ)知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發(fā)現(xiàn)問題需要加強計算機理論知識的再學(xué)習(xí)。程序人人皆可編,但當(dāng)你發(fā)現(xiàn)編到一定程度很難再提高的時候,就要回頭來學(xué)習(xí)一些計算機科學(xué)和數(shù)學(xué)基礎(chǔ)理論。學(xué)過之后,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學(xué)習(xí)編程的過程中要不斷地針對應(yīng)用中的困惑和問題深入學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、算法、計算機原理、編譯原理、操作系統(tǒng)原理、軟件工程等計算機科學(xué)的理論基礎(chǔ)和數(shù)理邏輯、代數(shù)系統(tǒng)、圖論、離散數(shù)學(xué)等數(shù)學(xué)理論基礎(chǔ)知識。這樣經(jīng)過不斷的學(xué)習(xí),再努力地實踐,編程水平一定會不斷提高到一個新高度。

C語言實訓(xùn)心得

在初學(xué)C語言的一個學(xué)期后,我們進(jìn)行了C語言實訓(xùn)階段,嘗試自己編寫一個比較復(fù)雜的程序系統(tǒng)。在為期兩周的時間中,我們同組的同學(xué)共同的感受是:C語言實訓(xùn)和平時上課所接觸的程序是有很大不同的,所經(jīng)受的考驗和克服的困難是平時所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實訓(xùn)的復(fù)雜程序。在這里,我作為其中的參與者,自然感觸良多。

剛開始接觸到C的時候,我已經(jīng)學(xué)過一些有關(guān)VB的內(nèi)容,這個在算法和思維上稍微有點幫助?;叵氡緦W(xué)期的學(xué)習(xí),首先,最基本的,是C的數(shù)據(jù)格式,讓我們知道整數(shù),浮點數(shù)以及字符常量在C中的運用。然后,在學(xué)會了數(shù)據(jù)轉(zhuǎn)化,以及熟練的可以對各種數(shù)據(jù)處理之后,我開始進(jìn)行有關(guān)數(shù)據(jù)結(jié)構(gòu),像數(shù)組,結(jié)構(gòu)體等的學(xué)習(xí),因為有的東西從現(xiàn)有的知識來看都是非常簡單的,還沒有聯(lián)系到指針等等一些復(fù)雜的概念??墒牵瑑H僅學(xué)會這些是遠(yuǎn)遠(yuǎn)不夠的,C語言中,還有很多更加經(jīng)典、重要、實用的知識。

說說函數(shù)。雖說很多程序語言都有函數(shù)這一內(nèi)容,但我覺得C語言的函數(shù)是最有魅力的了。學(xué)習(xí)函數(shù)的方法是比較簡單的,只有兩個字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時間,學(xué)習(xí)C語言的“高人”都說,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數(shù)來代替的。比如,大家可以作一個比較字符串的實驗,用C語言中的strcmp()函數(shù)只要一句話,而自己編寫的話,30句都很難實現(xiàn),可想而知函數(shù)的實用和快捷。在我們C語言實訓(xùn)的代碼中,函數(shù)更是得到了充分的應(yīng)用,可以說,實訓(xùn)題目的復(fù)雜代碼,就是用無數(shù)個函數(shù)的調(diào)用和嵌套積累出來的。

要注意的是,有的同學(xué)剛剛開始的時候,都是被一些大的程序激勵的,所以當(dāng)開始的時候看到繁瑣的數(shù)據(jù)轉(zhuǎn)化和簡單的算法,都覺得很無聊,都想自己做幾個自己滿意的程序來看看,雖然這種想法很好,但是,我們說,沒有基礎(chǔ),純粹是搬照一些現(xiàn)成設(shè)計方法,是不足取的。要知道,程序設(shè)計講究的是個人的思維的,假如剛開始就被一些現(xiàn)成的思想束縛住,以后就會覺得很無趣。

我們知道,指針其實是C語言的靈魂,許多的數(shù)據(jù)結(jié)構(gòu)在我們學(xué)到這里之前都可以說是精通了。所以我們的任務(wù)就是,讓數(shù)據(jù)結(jié)構(gòu)在指針中運行。當(dāng)然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及多維數(shù)組在結(jié)構(gòu)體中的運用,都一點一點的加了進(jìn)來,同時豐滿了我們對原來C的數(shù)據(jù)機構(gòu),數(shù)據(jù)表示的理解。當(dāng)我們完成了這三步的學(xué)習(xí),我們已經(jīng)可以自豪的說,我們的基礎(chǔ)都扎實了,可以進(jìn)一步的學(xué)習(xí)有關(guān)算法,設(shè)計概念等等深層次的東西了。

但是,指針,結(jié)構(gòu)體,這些太抽象的東西,在學(xué)習(xí)C語言的時候我們就有點“似懂非懂”,可是在眼下的C語言實訓(xùn)中,像這么重要的C語言知識,一定要達(dá)到能熟練掌握,實際運用的程度。在實訓(xùn)的大程序中,結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及在結(jié)構(gòu)體中的運用等具體的技術(shù)環(huán)節(jié),都得到了體現(xiàn),不會指針,我們的工作是沒法展開的。所以,在實訓(xùn)期間,大家在鞏固基本知識的基礎(chǔ)上,逐塊攻克實訓(xùn)課題,克服了困難,自信心得到了提高。

最后,談?wù)勎覀兘M的程序軟件。商店商品管理系統(tǒng),是一個比較利于應(yīng)用,解決實際問題,方便實際管理的程序。設(shè)計代碼比較復(fù)雜,結(jié)構(gòu)比較嚴(yán)謹(jǐn)。在程序編寫的1周左右的時間里,組員們遇到了上述的困難,包括程序設(shè)計構(gòu)思,甚至是指針等某些知識點的欠缺,導(dǎo)致的工作中出現(xiàn)的困難。但是,當(dāng)大家一起團(tuán)結(jié)協(xié)作,解決了這些困難之后,發(fā)現(xiàn)自己也可以編寫復(fù)雜的、應(yīng)用性的程序了,更發(fā)現(xiàn)自己對C語言這門學(xué)科的興趣也提高了。

當(dāng)然,我們編寫的商店商品管理系統(tǒng),還存在很多疏漏和不合理之處。比如,程序復(fù)雜冗長,如果時間充裕,我們將在不改變程序運行結(jié)果的基礎(chǔ)上,簡化程序,使每一句更加精辟,總體上更加簡化。另外,在程序的外觀上,我們由于時間問題,沒有做更多的修飾,運行起來顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會更加完美。

以上就是我的C語言實訓(xùn)個人總結(jié)

c語言實驗報告心得

c語言實驗心得:

1、只有頻繁用到或?qū)\算速度要求很高的變量才放到data區(qū)內(nèi),如for循環(huán)中的計數(shù)值。

2、其他不頻繁調(diào)用到和對運算速度要求不高的變量都放到xdata區(qū)。

3、常量放到code區(qū),如字庫、修正系數(shù)。

4、邏輯標(biāo)志變量可以定義到bdata中。

在51系列芯片中有16個字節(jié)位尋址區(qū)bdata,其中可以定義8*16=128個邏輯變量。這樣可以大大降低內(nèi)存占用空間。定義方法是: bdata bit LedState;但位類型不能用在數(shù)組和結(jié)構(gòu)體中。

5、data區(qū)內(nèi)最好放局部變量。

因為局部變量的空間是可以覆蓋的(某個函數(shù)的局部變量空間在退出該函數(shù)是就釋放,由別的函數(shù)的局部變量覆蓋),可以提高內(nèi)存利用率。當(dāng)然靜態(tài)局部變量除外,其內(nèi)存使用方式與全局變量相同;

6、確保程序中沒有未調(diào)用的函數(shù)。

在Keil C里遇到未調(diào)用函數(shù),編譯器就將其認(rèn)為可能是中斷函數(shù)。函數(shù)里用的局部變量的空間是不釋放,也就是同全局變量一樣處理。這一點Keil做得很愚蠢,但也沒辦法。

7、如果想節(jié)省data空間就必須用large模式。

將未定義內(nèi)存位置的變量全放到xdata區(qū)。當(dāng)然最好對所有變量都要指定內(nèi)存類型。

8、使用指針時,要指定指針指向的內(nèi)存類型。

在C51中未定義指向內(nèi)存類型的通用指針占用3個字節(jié);而指定指向data區(qū)的指針只占1個字節(jié);指定指向xdata區(qū)的指針占2個字節(jié)。如指針p是指向data區(qū),則應(yīng)定義為: char data *p;。還可指定指針本身的存放內(nèi)存類型,如:char data * xdata p;。其含義是指針p指向data區(qū)變量,而其本身存放在xdata區(qū)。

以前沒搞過C51,大學(xué)時代跟單片機老師的時候也是搗鼓下匯編,現(xiàn)在重新搞單片機,因為手頭資料不多,找到一些C51的程序,發(fā)現(xiàn)里面有這些關(guān)鍵字,不甚明了,沒辦法只好找了下,發(fā)現(xiàn)如下描述:

從數(shù)據(jù)存儲類型來說,8051系列有片內(nèi)、片外程序存儲器,片內(nèi)、片外數(shù)據(jù)存儲器,片內(nèi)程序存儲器還分直接尋址區(qū)和間接尋址類型,分別對應(yīng)code、data、xdata、idata以及根據(jù)51系列特點而設(shè)定的pdata類型,使用不同的存儲器,將使程序執(zhí)行效率不同,在編寫C51程序時,最好指定變量的存儲類型,這樣將有利于提高程序執(zhí)行效率(此問題將在后面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應(yīng)不同的實際硬件系統(tǒng),也將有不同的編譯結(jié)果。

在51系列中data,idata,xdata,pdata的區(qū)別

data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。

idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪問效果很好)

xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

pdata:外部擴展RAM的低256個字節(jié),地址出現(xiàn)在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優(yōu)點,具體用法屬于中級問題,這里不提。

三、有關(guān)單片機ALE引腳的問題

"單片機不訪問外部鎖存器時ALE端有正脈沖信號輸出,此頻率約為時鐘振蕩頻率的1/6.每當(dāng)訪問

外部數(shù)據(jù)存儲器是,在兩個機器周期中ALE只出現(xiàn)一次,即丟失一個ALE脈沖."這句話是不是有毛

病.我覺得按這種說法,應(yīng)該丟失3個ALE脈沖才對,我一直想不通是怎么回事,希望大蝦們幫幫我.

小弟感激涕零.

答:

其他所有指令每6個機器周期發(fā)出一個ALE,而MOVX指令占用12個機器周期只發(fā)出一個ALE

四、如何將一個INT型數(shù)據(jù)轉(zhuǎn)換成2個CHAR型數(shù)據(jù)?

經(jīng)keil優(yōu)化后,char1=int1/256,char2=int1%256或char1=int18,char2=int10x00ff效率是一樣的。

五、在KEIL C51上仿真完了,怎樣生成HEX文件去燒寫??

右鍵點項目中Target 1,選第二個,在OUTPUT中選中CREAT HEX

六、typedef 和 #define 有何不同??

typedef 和 #define 有何不同》》》 如

typedef unsigned char UCHAR ;

#define unsigned char UCHAR ;

typedef命名一個新的數(shù)據(jù)類型,但實際上這個新的數(shù)據(jù)類型是已經(jīng)存在的,只不過是定義了

一個新的名字.

#define只是一個標(biāo)號的定義.

你舉的例子兩者沒有區(qū)別,但是#define還可以這樣用

#define MAX 100

#define FUN(x) 100-(x)

#define LABEL

等等,這些情況下是不能用typedef定義的

七、請問如何設(shè)定KELC51的仿真工作頻(時鐘)

用右鍵點擊左邊的的target 1,然后在xtal一欄輸入

八、不同模塊怎樣共享sbit變量,extern不行?

把SBIT定義單獨放到一個.H中,每個模塊都包含這個.h文件

九、C51中對于Px.x的訪問必須自己定義嗎?

是的。

如sbit P17 = 0x97;即可定義對P1.7的訪問

十、SWITCH( )語句中表達(dá)式不可以是位變量對嗎?

可以用位變量:

#include

#include

void main()

{

bit flag;

flag=0;

switch(flag)

{

case '0':{printf("0\n");break;}

case '1':{printf("1\n");break;}

default:break;

}

}

bit 變量只有兩種狀態(tài),if 語句足夠啦,!!!

十一、const常數(shù)聲明占不占內(nèi)存???

const 只是用來定義“常量”,所占用空間與你的定義有關(guān),如:

const code cstStr[] = {"abc"};

占用代碼空間;而如:

const char data cstStr[] = {"abc"};

當(dāng)然占用內(nèi)存空間。

另外,#define 之定義似乎不占用空間。

十二、philips的單片機P89C51RD+的擴展RAM在C51中如何使用?

試一試將auxr.1清0,然后在c語言中直接聲明xdata類型的變量

十三、BUG of Keil C51

程序中用如下語句:

const unsigned char strArr[] = {"數(shù)學(xué)"};

結(jié)果發(fā)現(xiàn)strArr[] 內(nèi)容為 {0xCA,0xD1,0xA7},真奇怪!

凡是有0xfd,則會通通不見了,所以只能手工輸入內(nèi)碼了,例如 uchar strArr[]=

{0xCA,0xfd,0xd1,0xa7}(用Ultraedit會很方便)。

十四、Keil C51中如何實現(xiàn)代碼優(yōu)化?

菜單Project下Option for target "Simulator"的C51.

看到Code optimization了嗎?

十五、請教c的!和 ~ 符號有甚區(qū)別??

!是邏輯取反,~是按位取反。

十六、c51編程,讀端口,還要不要先輸出1?

我怎么看到有的要,有的不要,請高手給講講,到底咋回事?謝了

要輸出1的,除非你能保證之前已經(jīng)是1,而中間沒有輸出過其他值。

十七、當(dāng)定時器1(T1)用于產(chǎn)生波特率時,P3^5還是否可以用作正常的I/O口呢?

p3.5完全可以當(dāng)普通的io使用

十八、C51中 INT 轉(zhuǎn)換為 2個CHAR?

各位高手:

C51中 INT 轉(zhuǎn)換為 CHAR 如何轉(zhuǎn)換諸如:

X = LOW(Z);

Y = HIGH(Z);

答:

x=(char)z;

y=(char)(z8);

十九、如果我想使2EH的第7位置1的話,用位操作可以嗎?

現(xiàn)在對位操作指令我一些不太明白請各位多多指教:

如 SETB 07H 表示的是20H.7置1,對嗎?(我在一本書上是這么看到的)

那么如果我想使2EH的第7位置1的話,象我舉的這個例子怎么表示呢?謝謝!

SETB 77H

setb (2eh-20h)*8+7

20h-2fh每字節(jié)有8個可位操作(00h-7fh),其它RAM不可位直接操作

二十、char *addr=0xc000 和char xdata *addr=0xc000有何區(qū)別?

char *addr=0xc000;

char xdata *addr=0xc000;

除了在內(nèi)存中占用的字節(jié)不同外,還有別的區(qū)別嗎?

char *addr=0xc000; 是通用定義,指針變量 addr 可指向任何內(nèi)存空間的值;

char xdata *addr=0xc000; 指定該指針變量只能指向 xdata 中的值;

后一種定義中該指針變量(addr)將少占用一個存儲字節(jié)。

uchar xdata *addr=0xc000;指針指向外ram;

如果:data uchar xdata *addr=0xc000;指針指向外ram但指針本身存在于內(nèi)ram(data)

以此類推可以idata uchar xdata *addr=0xc000;pdata uchar xdata *addr=0xc000;

data uchar idata *addr=0xa0;.........

二十一、while(p1_0)的執(zhí)行時間?

假設(shè),P1_0為單片機P1口的第一腳,請問,

while(P1_0)

{

P1_0=0;

}

while(!P1_0)

{

P1_0=1;

}

以上代碼,在KEIL C中,需要多長時間,執(zhí)行完。能具體說明while(P1_0)的執(zhí)行時間嗎?

仿真運行看看就知道了,

我仿真了試了一下,約14個周期

二十二、怎樣編寫C51的watchdog程序?

各位大蝦,我用KEIL C51 編寫了一個帶外部開門狗的程序,可程序無法運行起來,經(jīng)過查

找,發(fā)現(xiàn)程序在經(jīng)過C51編譯后,在MAIN()函數(shù)的前部增加了一端初始化程序,等到進(jìn)入

主程序設(shè)置開門狗時,開門狗已經(jīng)時間到,將我的程序復(fù)位了,請問我怎樣才能修改這一端

初始花程序,使他一運行,就設(shè)置開門狗?

可以在startup.a51中加入看門狗刷新指令,當(dāng)然用匯編,然后重新編譯startup.a51

,將他和你的程序連接即可。新的startup.a51會自動代替系統(tǒng)默認(rèn)的啟動模塊。

二十三、keil C51 怎樣把修改的startup.a51 加到工程文件中

直接加入即可

注意不要改動?STACK,?C_START,?C_STARTUP等符號。startup.a51直接加入項目,不用修改也可。可在內(nèi)面自己修改匯編的一些限制或堆棧指針。

二十四、關(guān)于波特率的設(shè)置

我在設(shè)定串口波特率時發(fā)現(xiàn)一個問題:在晶體震蕩器為11.0592MHz時,若設(shè)9600BPS的話,

TH1=0XFD,TL1=0XFD,而要設(shè)19200BPS的話,TH1、TL1有否變化,如果沒變,為什么?

如果變了,又為什么?(因為我看書上倆個是一樣的),希望大家點撥。

答:

當(dāng)電源控制寄存器(PCON)第BIT7(SMOD)為1時波特率加倍。

TH1和TL1的值不變.

二十五、如何在C中聲明保留這部分RAM區(qū)不被C使用?

我不知道在C源程序中怎么控制這個,但在匯編程序中加入下面一段就行:

DSEG AT 20H

AA: DS 10

這樣C51就不會占用20H--29H了

或者在c51里這樣定義:

uchar data asm_buff[10] _at_ 0x20;

二十六、問浮點運算問題

我在用C51時發(fā)現(xiàn)它對傳遞浮點參數(shù)的個數(shù)有限制,請問:

1)參數(shù)是以全局變量的形式傳遞的,請問以全局變量的形式傳遞的參數(shù)也有限制嗎?

2)這種傳遞浮點參數(shù)的限制有多少呢?

3)float*float的結(jié)果是float類型還是double類型?能否直接賦值給float類型的變量?

答:

由于KEIL C51的參數(shù)傳遞是通過R0-R7來傳遞的,所以會有限制。

不過KEIL提供了一個編譯參數(shù),可以支持更多參數(shù)的傳遞。具體

的內(nèi)容見KEIL的PDF文檔。

我建議你把多個要傳遞的參數(shù)定義到指針或結(jié)構(gòu)體中去,傳遞參

數(shù)通過指針或結(jié)構(gòu)進(jìn)行,這樣好一些。

第3個問題回答是YES,你自己試試不就知道了。

二十七、如何在某一個地址定義ram

用_at_ 命令,這樣可以定位靈活一點的地址

uchar xdata dis_buff[16] _at_ 0x6020 ;//定位RAM

將dis_buff[16]定位在0x6020開始的16個字節(jié)

二十八、keil c中,用什么函數(shù)可以得到奇偶校驗位?

例如32位數(shù)據(jù),將四個字節(jié)相互異或后檢查P即可,若耽心P被改變,可用內(nèi)嵌匯編。

#include

unsigned char parity(unsigned char x){

x^=x;

if(P)return(1);

else return(0);

}

unsigned char parity2(unsigned int x){

#pragma asm

mov a,r7

xrl ar6,a

#pragma endasm

if(P)return(1);

else return(0);

}


本文名稱:c語言函數(shù)實驗報告心得6 c語言函數(shù)實訓(xùn)報告
轉(zhuǎn)載源于:http://weahome.cn/article/doeohcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部