您好,想请教关于C语言outportb函数的一些问题!

一行语句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()); 
}

临摹微笑
浏览 264回答 2
2回答

jeck猫

这个是比较幼稚的错误了!!你告诉我 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

函数: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;  }
打开App,查看更多内容
随时随地看视频慕课网APP