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

1、在沒有任何后綴標志的情況下,整型變量的數據類型是在能承受范圍內中最短的一個!


2、實際編程中,應盡可能采用 unsigned 的變量,因為計算機內存的數據存儲都是補碼的形式,有符號類型(特別是其中的負數)還得來回轉換,導致效率不高。


3、另外unsigned long的取值最大可達到42億,這個有必要記住。


4、實數型數據在內存中的存儲是23位有效二進制,且有一位固定為1不存儲,所以實際能表示24位有效值。(這有詳細介紹)若24位全為1,十進制最大整數值為16777215(不考慮指數),換言之,純整數在7位以內是準確的。同樣的方法也可達到,純小數在7位以內是準確的*。當小數整數都有的時候,只有前6位數據是準確的*。


5、單片機的變量存儲空間 bit sbit bdata data idata pdata xdata 


僅僅知道這些名詞是不夠的,還必須知道實際的存儲空間。


bit:內部RAM的可位尋址區(0x20~0x7F)的某位 

sbit:定義單(多)字節可位尋址區的某位 

bdata:存儲在內部RAM可位尋址區,通常搭配sbit使用


data: 內部RAM,0x00~0x7F,可位尋址區(128字節),直接尋址,效率最高 

idata: 內部RAM,0x00~0xFF,256字節,間接尋址,訪問效率一般(內部RAM的0x80~0xFF用于中斷和函數調用的堆棧) 

pdata:外部RAM,0x00~0xFF,256字節,間接尋址 

xdata:外部RAM,0x0000~0xFFFF,64K字節,借助DPTRH,DPTRL進行間接尋址


code:程序存儲空間Flash中


keil的Memory Model 可以設置默認變量存儲空間。 

Small : 默認存儲在data區域中 

Compact:默認存儲在Pdata中 

Large:默認存儲在xdata中


標準51:RAM 共512字節,片內256(片內不可擴展),片外256字節(片外可擴展)。 

bdata < data < idata 

pdata < xdata


6、需要注意,當keil利用printf調試的時候,格式化字符 %d 表示的是輸出有符號的數據類型范圍,可能造成溢出,要特別注意。 


無符號長整型,%lu 


單字節整型, %bd


7、keil特有的絕對定位關鍵字 _at_ 


eg: unsigned int data a _at_ 0x28 


但是這個關鍵字只能定義全局變量。


8、static 是一門學問,戳這里。

我們常見的用法,靜態局部變量 = 全局變量 


static 修飾全局變量或者函數的時候,表示該函數或者該局部變量只是在該文件可見。


9、位操作運算符的妙用:


按位與 & 


將某位清0,比如 a &= 0xFE, 最低位清0了


檢測某位是0,還是1。在通信中用到的多。 


方法為分別與 0x01 0x02 0x04 0x08 0x10 0x20 0x40 0x80 進行即可。


按位或 | 某位置1,比如 a |= 0x80 最高位置1


按位取反 ~ 將所有位取反 a = ~0x01; 取反后得到 0xFE


按位異或 將某一位取反。 a ^= 0x80; 將最高位取反


10、移位和乘除法的效率


結論為:


乘法比左移效率高


右移比除法效率高


11、指針


變量指針:一個變量在內存中的起始地址稱為這個變量的指針。說白了,指針的本質就是地址。 


指針變量:專門用來存放其他變量起始地址的變量,稱為指針變量。


keil特有指針的表達格式: 所指變量類型 當無


char *point; //定義通用指針變量和C一樣。

unsigned char *cp1, *cp2; //同上 

char xdata *Point; //定義內存特殊指針,和C不一樣

unsigned char xdata * data Point1; //unsigned char 變量存儲在xdata, 指針變量存儲在data 


需要說明的是,通用指針變量在內存中占三個字節。而標準C是4個字節。


keil測試代碼


#include

#include


void main()

{

    unsigned char *a;   

    unsigned char x;


    TI = 1;

    x = sizeof(a);

    while(1);

}


CB測試代碼


#include


int main()

{

    char *a;

    printf("%d", sizeof(a));

}


通用指針變量


當無通用指針,默認指針變量存儲在數據存儲器data中,若要指定指針變量存儲位置,可在 * 后加上對應的存儲空間。


char * data a1; //等價于 char *a1

char * idata a2; //指針變量存儲在內部RAM idata

char * xdata a3; //指針變量存儲在片外RAM 64K地址范圍


特殊指針變量


存儲空間為內部RAM(data idata bdata)時,指針變量自身占一個字節。


char data * a1;

char xdata * a2;

char bdata * a3;


存儲空間為外部RAM時,指針變量自身占用兩個字節。


char pdata * b1;

char xdata * b2;


當使用特殊指針的時候通常要把指針變量定義在內部RAM中,這樣才是最快,效率最高的。


char bdata * a1; 

char pdata * b1;


12、多文件操作


函數可以不加 extern (引用的函數不能是加static關鍵字的) 


變量必須得加 extern


關鍵字:單片機  C知識 引用地址:單片機中的C知識

上一篇:關于IAP的一點深入理解
下一篇:STC12單片機實現自動下載程序

推薦閱讀

西門子SCC-800平臺概念圖。包括SGT-800燃氣輪機。圖片:西門子。   多米尼加共和國將建造一座浮在水上的天然氣發電廠,并配備由Fluence提供的電池儲能系統。   總部位于百慕大的獨立電力生產商、跨國集團Seaboard的子公司橫貫大陸資本公司(Transcontinental Capital Corporation)已從德國西門子工程公司(Siemens)和新加坡ST engineering公司...
得益于發達的電商網絡和智能科技產品技術成熟而帶來的成本下探,加上廣大消費者對智能家居的熱切期盼,近年來,掃地機器人開始成為國內智能家居的“新風口”。R (國際機器人聯合會)數據統計顯示:2016-2019年全球掃地機器人銷售總量達到3000萬臺,占家務服務機器人銷售總量的比例為97.4%。正是看到了掃地機器人的巨大發展空間,近年來國內涌現出一大...
據南麟電子微信公眾號消息,該公司近日新增近1.6億元人民幣的B+輪融資,2020年已累計完成融資2億元。據悉,本輪融資由江蘇新潮科技集團和南京金浦新潮新興產業股權投資基金聯合領投,大唐電信、盛宇投資、同山投資、公司董監高、核心員工等機構和個人積極跟投。募集資金將用于補充運營流動資金以及購置集成電路封測設備擴大產能,以應對日益增長的客戶需求...
據外媒報道,意法半導體公司(STMicroelectronics)推出第三代STPOWER碳化硅場效應晶體管(SiC MOSFET),在電動汽車動力系統,以及其他對功率密度、能源效率和可靠性要求嚴格的應用中,可用于控制功率。作為SiC功率MOSFET的市場領導者,意法半導體結合領先的新設計技術,以進一步挖掘SiC的節能潛力。(圖片來源:意法半導體公司)隨著電動汽車市場迅猛發...

史海拾趣

問答坊 | AI 解惑

《模擬電路基礎》模擬試題

《模擬電路基礎》模擬試題 一 填空題(每題2分,共40分) 1 N溝道____________型的MOS管,其Vgs值可以為負也可以為正,而P溝道的JFET,其Vgs值只能是___________值。2 再三種組態中,__________組態的放大能力最強,__________組態的輸入電阻最大,_ ...…

查看全部問答∨

PLC、DCS、FCS三大控制系統的特點(轉貼)

FCS是由PLC發展而來的;而在另一些行業,FCS又是由DCS發展而來的,所以FCS與PLC及DCS之間有著千絲萬縷的聯系,又存在著本質的差異。本文試就PLC、DCS、FCS三大控制系統的特點和差異作一分析,指出它們之間的淵源及發展方向。    摘 要: ...…

查看全部問答∨

對使用新型測試技術和儀器的幾點忠告

隨著半導體制造商向65納米技術轉移并展望更小節點,嚴峻的測試挑戰也開始浮出水面。現在,工藝開發工程師們必須放棄由硅、二氧化硅、多晶硅和鋁材料構成的良性世界,而將自己置于由硅鍺(SiGe)、絕緣體上硅(SOI)、亞硝酸鉿(HfNO2)、金屬柵、低 ...…

查看全部問答∨

網絡下載WINCE BIN報錯,那位大俠能幫忙分析下

求助:我通過platform builter5.0下載WINCE nk.bin文件到ARM板中,提示如下錯誤: Warning:  Debugger service map is set to none.  If your image has debugging support it may not boot properly. Cannot access selecte ...…

查看全部問答∨

版主這個時序定時器要怎么配置才能實現

版主這個時序怎么定時器要怎么配置才能實現啊! 下載 (21.83 KB) 2010-3-1 14:41 …

查看全部問答∨

關于mips64的cycle count的實現問題

在mips32中是這樣實現的:   #define rdtscl(dest)\\      __asm__ __volatile__(\"mfc0 %0, $9; nop\":\"=r\"(dest));     但是我發現$9是一個32位的寄存器,那如何實現64位上電時間呢?   下面是一些 ...…

查看全部問答∨

編寫程序

我想用MSP430編寫程序,怎樣通過編程輸出顯示已知頻率的幅度值啊…

查看全部問答∨

開發板,仿真器,測試樣機,串口服務器超低價.

XDS510    100元 KL05Z   開發板,全新.  50元 串口服務器,全新,帶光盤.  50元 M動力  F28035開發板,加焊485芯片  100元. 測試樣品  推挽正激加并網.  200元. ...…

查看全部問答∨

如何利用MSP430對一個信號與定值比較

如何利用MSP430對一個4-20mA信號與給定值進行比較,然后驅動燈泡亮滅,并將信號給上位機。 是利用MSP430的比較器呢?還是如何操作?誰能給個思路?謝謝!!!!! \0\0\0eeworldpostqq…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宜昌市| 兰坪| 于田县| 阜南县| 城市| 岢岚县| 闽侯县| 郧西县| 巴南区| 家居| 辽源市| 平阳县| 临邑县| 五华县| 津市市| 团风县| 南召县| 陆丰市| 赣州市| 延吉市| 方正县| 囊谦县| 葵青区| 陇川县| 东安县| 沁源县| 扶风县| 茶陵县| 嘉峪关市| 石阡县| 双牌县| 新乐市| 文山县| 绥宁县| 德惠市| 双江| 巴青县| 财经| 兰考县| 石阡县| 杨浦区|