|
|||||||||||
| 技術(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 |
我作的一個(gè)程序,學(xué)習(xí)的,課是編譯通不過呀 |
| 作者:irisjyf 欄目:單片機(jī) |
這個(gè)是我的程序,但是編譯通不過 #include<stdio.h> int max(int a,int b) { int z; if(a>b) z=a; else z=b; return z; } int PROCESS(int a,int b,int (* f)()) { int z; z=f(); printf("%d",z); } void main() { int a; int b; printf("please the NUMBER"); scanf("%d%d",a,b); PROCESS(a,b,max); } 編譯信息為error C2664: 'PROCESS' : cannot convert parameter 3 from 'int (__cdecl *)(int,int)' to 'int (__cdecl *)(void)' None of the functions with this NAME in scope match the target type 不知道為什么; 我是依照書上的例子編的。謝謝幫忙 |
| 2樓: | >>參與討論 |
| 作者: Bingoes 于 2006/1/25 22:58:00 發(fā)布:
你是用BC編譯還是用KEIL C編譯的? 看到樓主的貼子,首先一個(gè)疑問就是,書上的例子指 的可能是PC機(jī)的C例子程序吧?我用BC31來編譯了一下, 是可以通過的。不過要想得到預(yù)想的結(jié)果,原來的程序 好像還需要修改一下: scanf("%d%",a,b);應(yīng)改為scanf("%d%d",&a,&b); 在PROCESS的調(diào)用中: z=f();應(yīng)改為z=f(a,b); * - 本貼最后修改時(shí)間:2006-1-25 23:38:31 修改者:Bingoes |
|
| 3樓: | >>參與討論 |
| 作者: Bingoes 于 2006/1/25 23:45:00 發(fā)布:
剛剛用KEIL C編譯了一下 也能通過呀,也就兩個(gè)warning而已.... |
|
| 4樓: | >>參與討論 |
| 作者: 天樂 于 2006/1/26 0:10:00 發(fā)布:
兄弟使用PROCESS函數(shù)的時(shí)候有問題 int PROCESS(int a,int b,int (* f)()) 你的第三個(gè)參數(shù)是沒有任何參數(shù)的函數(shù)指針,而你使用的時(shí)候,max是帶有兩個(gè)參數(shù)的函數(shù)指針。 建議使用: int PROCESS (int a, int b, int (*f)(int, int)) 中國信息技術(shù)資源網(wǎng) www.itsn.cn 中國信息技術(shù)資源網(wǎng)社區(qū) www.itsn.cn/bbs |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |