大众信息网

C语言问题,0x4800是什么意思?

答案:4  mip版
解决时间 2021-01-16 14:40
  • 提问者网友:这笑,有多危险
  • 2021-01-16 03:28
如题,这里有0x4800 0x5000 0x4b00 0x4d00这些是什么意思?怎么定义的?

然后,下面这个是一个在屏幕上划定一个矩形区域,用键盘方向键控制一个方块移动的方向的小程序,在turbo c/c++ 3.0上说有错误,是没定义_farme?的错误....哪里有错啊?我怎么看都没错呃.....

#include
#include
#include
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ESC 0x11b
void main()
{
int l=15,r=35,u=10,d=18,x,y,key;
void frame(int,int,int,int);
void move(int,int *,int *,int *,int *,int *,int *);
clrscr();
x=(l+r)/2;
y=(u+d)/2;
textcolor(YELLOW);
frame(l,r,u,d);
gotoxy(x,y);
cprintf("%c",1);
key=bioskey(0);
while(key!=ESC)
{
move(key,&x,&y,&l,&r,&u,&d);
key=bioskey(0);
}
}

void frame(int l,int r,int u,int d)
{
int i;
for(i=l;i{
gotoxy(i,u);
printf("%c",219);
gotoxy(i,d);
printf("%c",219);
}
for(i=u+1;i{
gotoxy(l,i);
printf("%c",219);
gotoxy(r,i);
printf("%c",219);
}
}

void move(int key,int *x,int *y,int *l,int *r,int *u,int *d)
{
gotoxy(*x,*y);
putchar(32);
if(key==UP)
{
if(*y==*u+1)*y=*d-1;
else (*y)--;
}
if(key==DOWN)
{
if(*y==*d-1)*y=*u+1;
else (*y)++;
}
if(key==LEFT)
{
if(*x==*l+1)*x=*r-1;
else (*x)--;
}
if(key==RIGHT)
{
if(*x==*r-1)*x=*l+1;
else (*x)++;
}
gotoxy(*x,*y);
putchar(1);
}
这里有0x4800 0x5000 0x4b00 0x4d00这些是什么意思?怎么定义的?
顺便写一下哪里能找到键盘按键转换成数字?比如说,F3按键用数字代表是多少,类似这种对应关系。哪能找到对应关系表?
最佳答案
  • 二级知识专家网友:琉璃知世
  • 2021-01-16 04:07
void frame(int,int,int,int);这个函数只有声明,没有定义
但是main()中又调用了这个函数,就是调用了没有定义的函数,肯定会出错的

0x4800 0x5000 0x4b00 0x4d00是十六进制的int值,用来表示不同的按键的
相当于给物理的按键绑定了一个编号
全部回答
  • 1楼网友:嘴硬欠吻
  • 2021-01-16 06:21
0x后跟的是十六进制数 0后跟的是八进制数
  • 2楼网友:可惜感動不是心動
  • 2021-01-16 04:42
0x表示16进制,也就是16进制的4800
  • 3楼网友:何必执着
  • 2021-01-16 04:18
C语言中,0x4800表示16进制数4800,对应的10进制数为18432 C语言规定:以0x或0X开头的整数常数表示16进制数据。 类似的,还有8进制数,以0开头,如0666表示8进制666,对应10进制的438.
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯