| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 950 人关注过本帖
标题:[求助]关于函数调用的问题
只看楼主 加入收藏
pierse1028
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-4-7
收藏
 问题点数:0 回复次数:4 
[求助]关于函数调用的问题
这是一个闹钟的程序,编译时报错,说aclock,tick这2个函数没有声明,但是我明明声明的的啊。
我换在vc环境下,关于函数的调用又没有报错,这是为什么啊?


# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# include<graphics.h>
# include<time.h>
# include<math.h>
# define pi 3.1415

void main()
{
int xyc[2],r[2],alpha[2],delta;

int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"d:\\tc\\BGI");
setbkcolor(WHITE);

setwritemode(1);
srand(time(NULL));

xyc[0]=250;
xyc[1]=200;
setcolor(DARKGRAY);
aclock(xyc);

getch();
closegraph();
}

void aclock(int xyc[2])
{
int i,r,x1,y1,x2,y2;
int hs,ms,ha,ma,sa;
double x,y,ang,theta,cosn,sinn;

struct tm*t;
time_t st,et,t1,t2;
char *clk[12]={"1","2","3","4","5","6","7","8","9","10","11","12"};

circle(xyc[0],xyc[1],150);
circle(xyc[0],xyc[1],100);

ang=pi/3.0;
theta=pi/6.0;

r=125;
for(i=0;i<12;i++)
{
cosn=cos(ang);
sinn=sin(ang);
x=r*cosn;
y=r*sinn;

x1=xyc[0]+x;
y1=xyc[1]-y;
outtextxy(x1,y1,clk[i]);
ang=ang-theta;
}

t=gmtime(&st);

i=t->tm_sec;
sa=i*6;

i=t->tm_min;
ma=i*6;

ha=i/2;
i=t->tm_hour;
i=i%12;
ha=i*30+ha;

tick(xyc,40,ha);
tick(xyc,60,ma);
tick(xyc,90,sa);
st=time(NULL);
et=st;
t1=st;
t2=st;

while((et-st)<60L)
{
if((t2-t1)>=1L)
{
/*secondhand*/
tick(xyc,90,sa);
sa=sa+6;
if(sa>360)
{
sa=sa-360;
}
tick(xyc,90,sa);

/*minhand*/
ms=ms+1;
if(ms>=10)
{
ms=0;
tick(xyc,60,ma);
ma=ma+1;
if(ma>360)
{
ma=ma-360;
}
tick(xyc,60,ma);
}

/*hourhand*/
hs=hs+1;
if(hs>=120)
{
hs=0;
tick(xyc,40,ha);
ha=ha+1;
if(ha>360)
{
ha=ha-360;
}
tick(xyc,40,ha);
}
}
t1=t2;
et=time(NULL);
t2=et;
}

}

/*refresh*/
void tick(int xyc[2],int r,int alpha)
{
int x1,y1,x2,y2;
double x,y,ang,cosn,sinn;

/*draw new hand*/
ang=pi*(90-alpha)/180.0;
cosn=cos(ang);
sinn=sin(ang);

x1=xyc[0];
y1=xyc[1];

x=r*cosn;
y=r*sinn;
x2=xyc[0]+x;
y2=xyc[1]-y;
line(x1,y1,x2,y2);

}

搜索更多相关主题的帖子: 函数 
2007-08-16 09:46
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
请在main()函数前面加上:
void tick(int xyc[2],int r,int alpha);
void aclock(int xyc[2]);
2007-08-16 12:00
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
你所做了的事情是定义而非声明

[此贴子已经被作者于2007-8-16 15:24:02编辑过]


2007-08-16 12:01
pierse1028
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-4-7
收藏
得分:0 
谢谢版主哈,
这个问题以后会注意的
2007-08-16 14:32
eakcon
Rank: 1
等 级:新手上路
帖 子:754
专家分:0
注 册:2007-11-7
收藏
得分:0 

好强呀!


此主题相关图片如下:

2007-11-14 10:15
快速回复:[求助]关于函数调用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018760 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved