|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | 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 |
很奇怪的函數(shù)原型問題 |
| 作者:wikiexe 欄目:單片機(jī) |
在編譯的時(shí)候碰到了一個(gè)很奇怪的“Warning [2058] call of function without prototype”問題,百思不得其解 所以拿出來,請(qǐng)大家指點(diǎn) 程序如下: BYTE SPI_write(BYTE VALUE) { SSPIF = 0; do { WCOL = 0; SSPBUF = VALUE; } while( WCOL ); while( SSPIF == 0 ); return SSPBUF; } BYTE SPI_read() { SPI_write(0x00); return SSPBUF; } BYTE halSpiReadReg(BYTE addr) { unsigned CHAR VALUE; P_CSn=0; while(P_SO); addr|=READ_SINGLE; SPI_write(addr); VALUE = SPI_read(); ~~~~~~~~~~~~~~~~~~~~~~~~~ P_CSn=1; P_SI=0; return VALUE; } 編譯時(shí)提示打波浪線的那句有“Warning [2058] call of function without prototype”警告,但是讓人很納悶的是為什么會(huì)有這個(gè)提示呢?而SPI_write卻沒有這個(gè)提示 |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2006/9/1 21:40:00 發(fā)布:
BYTE VALUE; |
|
| 3樓: | >>參與討論 |
| 作者: yuanjian79 于 2006/9/1 21:49:00 發(fā)布:
字面理解是函數(shù)沒有原型。 字面理解是函數(shù)沒有原型。把調(diào)用放最后看看;騽t在最前面聲明下調(diào)用原型。 另外,最好給出問題發(fā)生的環(huán)境(至少也得告訴別人用的是什么編譯器啊)。 |
|
| 4樓: | >>參與討論 |
| 作者: wikiexe 于 2006/9/1 21:56:00 發(fā)布:
我用的編譯器是mcc18 抱歉,忘說了 :) |
|
| 5樓: | >>參與討論 |
| 作者: 平常人 于 2006/9/1 21:57:00 發(fā)布:
樓上的hotpower已經(jīng)告訴你答案了,查一下你的BYTE是什么類型? 問題出在BYTE很可能不是unsigned CHAR類型的,所以SPI_read()不能向變量VALUE賦值。 |
|
| 6樓: | >>參與討論 |
| 作者: wikiexe 于 2006/9/1 22:07:00 發(fā)布:
BYTE的定義 是在Generic.h中定義的 typedef unsigned CHAR BYTE; 在最上面的程序中這樣包含了這個(gè)文件: #include "Generic.h" 而且這兩個(gè)文件放在了同一個(gè)目錄下 |
|
| 7樓: | >>參與討論 |
| 作者: wikiexe 于 2006/9/1 22:16:00 發(fā)布:
問題找到了! SPI_read()的函數(shù)定義由 BYTE SPI_read()改為 BYTE SPI_read(void)就ok了 原來是mcc18編譯器要求比較嚴(yán)格 對(duì)于空參數(shù)也必須以void注明 終于搞定了,好開心 ^_^ 謝謝各位了! |
|
| 8樓: | >>參與討論 |
| 作者: su_mj000 于 2006/9/2 0:23:00 發(fā)布:
兩者其實(shí)是等價(jià)的。 MCC18畫蛇添足,反倒給人添麻煩。 |
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |