音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

問一個不好意識問的問題...

作者:beiwei23du 欄目:單片機(jī)
問一個不好意識問的問題...
   我在書上看到這么一段C的延時程序
    void delays(void)
    {
      uchar i;
      for(i=300;i>0;i--);
     }
我有點(diǎn)不明白,既然i是uchar類型的變量,那他的值域應(yīng)該在0-255之間啊
為什么給i賦值300呢?這不是超過它的范圍了嗎?
可我在編譯時也沒發(fā)現(xiàn)錯誤,調(diào)試時300照樣賦給I
這是怎么回事。

2樓: >>參與討論
computer00
我見過凌陽的MCU開發(fā)環(huán)境下的uchar就是16bit的
所以這個還得看編譯環(huán)境。



如果是在keil下,給i敷值300,就會被截?cái),相?dāng)于i=300-256=44。

3樓: >>參與討論
Athlon64fx
int 長度和CPU有關(guān), 但是CHAR是固定的吧..
一個CHAR就是8位啊..

這種寫法可能有兩個原因:
1. 故意寫錯..降低可讀性..
2. 失誤..

好的編譯器會給出警告..

4樓: >>參與討論
computer00
不信你可以去找凌陽的編譯器來看看,CHAR是否是16位的
我開始也誤認(rèn)為它是8位的,卻吃了一回暗虧,哎………………


但絕大部分還是8位的,非8位的,我也就見過僅此一次而已。

5樓: >>參與討論
beiwei23du
我用的就是keil啊,
編譯時既沒見錯誤也沒見警告

6樓: >>參與討論
平常人
各位注意,上面用的是uCHAR而不是CHAR
uCHAR不是ANSI C的標(biāo)準(zhǔn)類型,是個用戶定義的類型;CHAR才是ANSI C的標(biāo)準(zhǔn)類型,但不敢肯定ANSI C里是否給出了它的長度。

關(guān)于uCHAR,假如有如下定義,那上面的程序就一點(diǎn)沒問題:
typedef uCHAR unsighed SHORT;
typedef uCHAR SHORT;
........

7樓: >>參與討論
伍笛

有的編譯器會出錯,但是大多數(shù)的編譯器不會出錯。如以下程序
unsigned CHAR i;
for(i = 0; i < 300; i++)
{
}
一般的編譯器是不會出錯的,但是這就是一個死循環(huán)。

8樓: >>參與討論
hxiaon
有意思的問題
 
9樓: >>參與討論
sxl_72
凌陽16位機(jī)可能是
 
10樓: >>參與討論
ljxh401
支持平常人的看法
 
11樓: >>參與討論
joy晴天
我也想到平常人 的想法
 
12樓: >>參與討論
原野之狼
re:
看看實(shí)際調(diào)試的過程中循環(huán)了多少次?
應(yīng)該是會截?cái)嗟,?4次。

13樓: >>參與討論
xiaoguang
凌陽的確實(shí)是16位
 
14樓: >>參與討論
qjy_dali
嚴(yán)格地說,程序沒有錯,但數(shù)值是不對
如果好的編譯器,可以給個警告。數(shù)值只不過是回卷了而已

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
C8051F413有人用過嗎?
如何判斷電位器有無滑動?
protel想先自動布線提示初始化失?
誰有max197\\max530\\ds12887的中文資料,給小弟一份
請求幫助
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號