[求助]关于函数调用的问题
这是一个闹钟的程序,编译时报错,说aclock,tick这2个函数没有声明,但是我明明声明的的啊。<br>我换在vc环境下,关于函数的调用又没有报错,这是为什么啊?<br><br><br># include <stdio.h><br># include <stdlib.h><br># include <conio.h><br># include<graphics.h><br># include<time.h><br># include<math.h><br># define pi 3.1415<br><br>void main()<br>{<br> int xyc[2],r[2],alpha[2],delta;<br><br> int gdriver=DETECT,gmode;<br> initgraph(&gdriver,&gmode,"d:\\tc\\BGI");<br> setbkcolor(WHITE);<br><br> setwritemode(1);<br> srand(time(NULL));<br><br> xyc[0]=250;<br> xyc[1]=200;<br> setcolor(DARKGRAY);<br> aclock(xyc);<br><br> getch();<br> closegraph();<br> }<br><br> void aclock(int xyc[2])<br> {<br> int i,r,x1,y1,x2,y2;<br> int hs,ms,ha,ma,sa;<br> double x,y,ang,theta,cosn,sinn;<br><br> struct tm*t;<br> time_t st,et,t1,t2;<br> char *clk[12]={"1","2","3","4","5","6","7","8","9","10","11","12"};<br><br> circle(xyc[0],xyc[1],150);<br> circle(xyc[0],xyc[1],100);<br><br> ang=pi/3.0;<br> theta=pi/6.0;<br><br> r=125;<br> for(i=0;i<12;i++)<br> {<br> cosn=cos(ang);<br> sinn=sin(ang);<br> x=r*cosn;<br> y=r*sinn;<br><br> x1=xyc[0]+x;<br> y1=xyc[1]-y;<br> outtextxy(x1,y1,clk[i]);<br> ang=ang-theta;<br> }<br><br> t=gmtime(&st);<br><br> i=t->tm_sec;<br> sa=i*6;<br><br> i=t->tm_min;<br> ma=i*6;<br><br> ha=i/2;<br> i=t->tm_hour;<br> i=i%12;<br> ha=i*30+ha;<br><br> tick(xyc,40,ha);<br> tick(xyc,60,ma);<br> tick(xyc,90,sa);<br> st=time(NULL);<br> et=st;<br> t1=st;<br> t2=st;<br><br> while((et-st)<60L)<br> {<br> if((t2-t1)>=1L)<br> {<br> /*secondhand*/<br> tick(xyc,90,sa);<br> sa=sa+6;<br> if(sa>360)<br> {<br> sa=sa-360;<br> }<br> tick(xyc,90,sa);<br><br> /*minhand*/<br> ms=ms+1;<br> if(ms>=10)<br> {<br> ms=0;<br> tick(xyc,60,ma);<br> ma=ma+1;<br> if(ma>360)<br> {<br> ma=ma-360;<br> }<br> tick(xyc,60,ma);<br> }<br><br> /*hourhand*/<br> hs=hs+1;<br> if(hs>=120)<br> {<br> hs=0;<br> tick(xyc,40,ha);<br> ha=ha+1;<br> if(ha>360)<br> {<br> ha=ha-360;<br> }<br> tick(xyc,40,ha);<br> }<br> }<br> t1=t2;<br> et=time(NULL);<br> t2=et;<br> }<br><br> }<br><br> /*refresh*/<br> void tick(int xyc[2],int r,int alpha)<br> {<br> int x1,y1,x2,y2;<br> double x,y,ang,cosn,sinn;<br><br> /*draw new hand*/<br> ang=pi*(90-alpha)/180.0;<br> cosn=cos(ang);<br> sinn=sin(ang);<br> <br> x1=xyc[0];<br> y1=xyc[1];<br> <br> x=r*cosn;<br> y=r*sinn;<br> x2=xyc[0]+x;<br> y2=xyc[1]-y;<br> line(x1,y1,x2,y2);<br><br> }<br><br> 请在main()函数前面加上:<BR>void tick(int xyc[2],int r,int alpha);<BR>void aclock(int xyc[2]); 你所做了的事情是定义而非声明[align=right][color=#000066][此贴子已经被作者于2007-8-16 15:24:02编辑过][/color][/align]
谢谢版主哈,<br>这个问题以后会注意的<br> <P>好强呀!</P>
<P><BR>此主题相关图片如下:<BR></P>
页:
[1]
