Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
資深會員
|
參照:
基本上在microchip compiler 的認知裡是不把他當做bug 看待的, 只能自己多注意 像是 if 的寫法, 一般正常寫法應該是這樣, if(a==b) 如果你寫成, if(a=b), 結果會如何呢 粉抱歉, compiler 是不會發出waring 的 而是會執行令 a=b的動作, if 的結果當然 always =1 所以其實那不算C18的 bug 只是microchip 的認知和現實有些不同罷了
發表於: 2006/11/21 18:05
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
我這樣寫倒是沒看到 2054 那個Warning message
2058正是提醒無prototype的message, 我跟你都是來這邊尋求知識的, 一起努力吧.
void main(void)
發表於: 2006/11/21 16:13
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
重新測試如下:
有加 #include <stdlib.h>時得到Warning [2054] suspicious pointer conversion 沒加 #include <stdlib.h>時得到Warning [2058] call of function without prototype 以下修正後 char ASCII_Buf[6]; 就全部沒有警告了 感謝大大的指導!^_^
發表於: 2006/11/21 15:46
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
對了
compiler 也是會有bug.的 像前幾天在討論區就看到一篇文章內容大致是 int a[8]; a[8] 這元素卻能用的bug .. 所以compiler 沒通知你錯誤讓你執行並不代表這就是對的。
發表於: 2006/11/21 15:39
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
照標準走會是比較理想的做法
雖然書也可能出錯,但是一開始還是照書上/規範的做還是比較好。 等你能改head 檔了自已寫head 檔了可以再嘗試新的方法。 像我之前用BCB寫小程式,有一天boss忽然叫我用vc.. 就發現了很多不一樣之處.. 在bcb ok 的…在vc可能異常 這時後就把code 寫的符合ansi c 的規範就比較正常了,同時在vc/bcb run 都ok... c的規範一開始就有提到,要使用function時,一定要有prototype. 所以....
發表於: 2006/11/21 15:29
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
感謝回應
我用的C18是剛從網路上下載的學生版 測試檔案就是W401 Answer裡的Ans4 我也測試和找了一下 沒找到哪裡有宣告 也沒有警告是指這個問題 請先進們指導之,謝謝
發表於: 2006/11/21 15:03
|
|||
|
Re: C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
我用C18 v3_06
用ultraedit search 整個include 目錄之後發現 itoa prototype 的確只有 stdlib.h 有 再來我直接在我的 code 使用itoa 也的確因為我沒stdlib.h而 顯示沒itoa 的prototype的Warning message 所以我只能推測可能的原因 1)你在別的地方宣告了所以可以用 2)你無視 Warning message 繼續使用 因為沒 include stdlib.h 雖然會出現 Warning message 但是 itoa 還是能動,但是這是不良的,記得我以前有一個案子也忽略了一些 Warning message (因為有些Warning message 只是提示你的變數宣告了卻沒使用過),所以忽略了。 結果後來找bug找了老半天,把Warning message 提醒的全修正就正常了… 共勉之....
發表於: 2006/11/21 11:17
|
|||
|
C18的itoa,需要#include <stdlib.h>嗎?
|
||||
---|---|---|---|---|
高級會員
|
如題
我從範例中拿掉後, 編譯還是PASS 可是MPLAB-C18-Libraries_51297f.pdf中卻提到要stdlib.h 為什麼呢?
發表於: 2006/11/21 10:36
|
|||
|