为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

临摹微笑 2021-10-12 20:11:03
一行语句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

查看完整回答
反对 回复 2021-10-17
?
大话西游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;
  }



查看完整回答
反对 回复 2021-10-17
  • 2 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信