一行語句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個贊
這個是比較幼稚的錯誤了?。?br/>
你告訴我 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
提交
取消