|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
在學(xué)C語(yǔ)言編程的過(guò)程有些地方不明白,請(qǐng)指教. |
作者:ihafd 欄目:單片機(jī) |
例如下程序: #include<reg51.h> #define nCHAR1 data unsigned CHAR: #define nCHAR2 unsigned CHAR; void main(void) { int kk; nCHAR1 repeat1; nCHAR2 repeat2; nCHAR2 buffer[8]; nCHAR2 code length[]="1234567890"; } 就以上程序來(lái)說(shuō).repeat1,是放在RAM底128字節(jié)里的,那repeat2和buffer[8]是不是也是放在ram里的,如果是,那么nCHAR1和nCHAR2不是用法一樣嗎?這個(gè)data還有什么意思呢? 還有 length[]是不是放在單片機(jī)的rom里的?用unsign CHAR code 是不是不可以定義變量的? * - 本貼最后修改時(shí)間:2005-2-1 10:26:05 修改者:ihafd |
2樓: | >>參與討論 |
作者: 今晚打老虎 于 2005/2/1 8:53:00 發(fā)布:
搶個(gè)第一 對(duì)于你的第一個(gè)問(wèn)題,我的理解是:因?yàn)樵趉eil c51中有三種編譯的模式:大、中、小。而編譯器對(duì)這三種模式的ram分配有不同的方案。具體的建議你去看看c51bbs里面的那本400多頁(yè)的keil c的pdf文檔。如果你用的是小模式的話,nCHAR1和nCHAR2是沒(méi)有區(qū)別的。 2.length[]的確是放在單片機(jī)的rom中。 3.用unsign CHAR code應(yīng)該是不能定義變量的。我也沒(méi)有試過(guò)行不行,但是我想既然是rom就應(yīng)該不行,你自己試試看。 程序的第三行有點(diǎn)錯(cuò)誤。 |
3樓: | >>參與討論 |
作者: ihafd 于 2005/2/1 10:27:00 發(fā)布:
謝謝 今晚打老虎 |
4樓: | >>參與討論 |
作者: qingheworkshop 于 2005/2/6 9:11:00 發(fā)布:
使用DEFINE 后面是不能跟分號(hào)的,語(yǔ)法錯(cuò)誤 |
5樓: | >>參與討論 |
作者: ssf621 于 2005/2/6 10:19:00 發(fā)布:
可以的 nchar2 code length[]="1234567890";這樣用是可以的,只是把length數(shù)組作為常量用,可以節(jié)省RAM空間。 |
6樓: | >>參與討論 |
作者: renmq 于 2005/2/7 17:14:00 發(fā)布:
語(yǔ)法錯(cuò)誤 應(yīng)該是這樣定義: #define uCHAR1 unsigned data CHAR #define uCHAR2 unsigned CHAR 在用define時(shí)不要用分號(hào),OK? |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào) |