一行语句outportb(301H,FFH),编译报错,错误提示为缺少右括号,这是什么情况?H是十六进制的意思if((status&0x02)!=0) {sletter=inportb(data51);if(sletter==1) {outportb(301H,FFH);if (already==0) {gotoxy(7,5);cprintf("@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @");gotoxy(7,7);cprintf(" It is day now ! ");gotoxy(7,9);cprintf("@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ");already=1;}}else { outportb(301H,FEH); if (already==1) {gotoxy(7,5);cprintf("* * * * * * * * * * * * * * * * *");gotoxy(7,7);cprintf(" It is night now ! ");gotoxy(7,9);cprintf("* * * * * * * * * * * * * * * * * ");already=0;}} }}while(!kbhit()); }
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
这个是比较幼稚的错误了!!
你告诉我 outportb(301H,FFH),这句中的301H 和FFH 是什么东西?
这个不应该错吧, 16进制也是写成outportb(0x301, 0xff), 而不是outportb(301H,FFH),当然假设你有宏定义过那是没问题, 要不然编译器怎么会知道你的301H和FFH是什么东西。
故可以如下方式改正:
方法一:
outportb(301H,FFH) 改为:outportb(0x301, 0xff)
方法二:
添加如下宏定义:
#define _301H 0x301
#define _FFH 0xff
大话西游666
TA贡献1817条经验 获得超14个赞
函数:outportb
功 能: 输出字节到硬件端口中
用 法: void outportb(int port, char byte);
程序例:
#include <stdio.h>
#include <dos.h>
int main(void)
{
int value = 64;
int port = 0;
outportb(port, value);
printf("Value %d sent to port number %d\n", value, port);
return 0;
}
添加回答
举报
0/150
提交
取消