freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第9章編程技巧-在線瀏覽

2024-11-05 19:23本頁面
  

【正文】 功能,每個(gè)中斷命令都有其專門的訪問功能類型,而且這些功能函數(shù)是由 AH寄存器中的值決定的。 PCDOS操作系統(tǒng)分為 ROMBIOS(Basic I/O System)和 DOS(Disk OperatingSystem)兩部分。二者是交叉在一起的,用戶訪問它們的方法基本相同:都是通過軟中斷。大多數(shù) C都提供了 int86()函數(shù)。 unsigned int dx ,si, di unsigned int cflag, flags。struct BYTEREGS{ unsigned char al, ah。 unsigned char cl, ch。}。 struct BYTEREGS h。例 利用 10h號(hào)中斷功能 6,可以實(shí)現(xiàn)清屏。 =6。 /*清屏程序 */ =0。 /*列起始 */ =24。 /*列結(jié)束 */ =7。r,amp。}例 調(diào)用 16h號(hào)中斷 0號(hào)功能讀取鍵盤掃描碼。鍵值存放如下:int c。sc[0] sc[1] 當(dāng)用戶在 IBMPC機(jī)上按下一個(gè)鍵時(shí),產(chǎn)生一個(gè)稱為掃描碼的兩個(gè)字節(jié) (16位 )的值。對(duì)于標(biāo)準(zhǔn)鍵的定位碼為 0,因此低位的值就是它的 ASCII碼值 (8位 )。要得到特殊鍵值,不能使用 gets()、 scanf()等函數(shù),只能用這里提供的方法。 運(yùn)行結(jié)果顯示部分鍵盤掃描碼為: A65 a97 048 957 (40 +43 60 =61左箭頭 75 右箭頭 77 上箭頭 72 下箭頭 80INS82 DEL83 F260 F361 F1068 ESC27 PGUP73 PGDN81 END79 HOME71int get_key(){ union REGS r。 return(int86(0x16,amp。r))。 其中包含了大部分在 ROMBIOS例程中找不到的各種各樣的高級(jí)功能,利用 AH寄存器傳送所請(qǐng)求的 DOS功能調(diào)用號(hào),通過中斷 21h可以訪問 DOS的所有功能 。 雖然可以像 ROMBIOS功能一樣,利用 int86()函數(shù)訪問 DOS功能,但很多系統(tǒng)都有一專門函數(shù) bdos(), 該函數(shù)用來執(zhí)行 21h號(hào)中斷調(diào)用,調(diào)用操作系統(tǒng)中的某個(gè)高級(jí)功能。例 調(diào)用 12h號(hào)中斷 Bh號(hào)功能檢查鍵盤狀態(tài)。}除了第一個(gè)參數(shù)外。把返回值強(qiáng)行變成 char型是必要的,因?yàn)樗祷氐氖窃?AL中的狀態(tài),而 AL沒有定義。 kbhit()函數(shù)的一個(gè)非常普通的用途就是可以讓某個(gè)子例程被用戶命令所中斷。如果需要編寫一個(gè)調(diào)制解調(diào)器程序,就要用到在異步串行口上進(jìn)行讀寫字符。}/*從串口讀字符 */include int get_async(){ return((char)bdos(0x3,0,0))。第三節(jié) 與匯編語言的接口(第九章 編程技巧)13 / 26 在 C語言編程中,需要使用匯編語言編寫例程大概有三個(gè)方面的原因: ⑴ 為了提高速度和效率。 ⑶ 為了利用通用的匯編語言例程。第二種,使用大多數(shù) C編譯器所具有的內(nèi)部匯編程序功能。而 TurboC則不同,每行匯編語句都要以 asm開頭。int mul(int a,int b){ asm mov ax,word ptr 8[bp] imul ax,word ptr 10[bp] endasm}int mul(int a,int b){ asm mov ax,word ptr 8[bp] asm imul ax,word ptr 10[bp]}第四節(jié) 程序調(diào)試問題(第九章 編程技巧)14 / 26一、 程序易出錯(cuò)問題 忘記定義變量。y=8。} 在使用變量之前,必須加: int x,y,z。 輸入輸出數(shù)據(jù)的類型與所用格式說明符不一致。 float b=。 結(jié)果可能不是所需。 如: int num。 printf(“%d\n”,num)。 輸入變量時(shí)忘記使用地址符。 應(yīng)改為: scanf(“%d %d”,amp。b)。 如: scanf(“%d %d”,amp。b)。 再如: scanf(“Input a amp。a,amp。 想在屏幕上提示 Input a amp??筛挠?printf(“Input aamp。 scanf(“%d,%d”,amp。b)。b: 后再輸入: 3,4(Enter)誤把 “=” 作為 “ 等于 ” 比較符。前則為賦值操作。 如: a=4 b=5 應(yīng)為: a=4。 復(fù)合語句的最后一句也應(yīng)該有分號(hào)。 a=b。 a=b。 } 在不該加分號(hào)的地方加分號(hào)。 printf(“a is larger than b.\n”)。i10。{scanf(“%d”,amp。 printf(“%d\n”,x*x)。 對(duì)應(yīng)該有花括弧的復(fù)合語句,忘記加花括弧。 i=1。 i++。循環(huán)應(yīng)改為: while(i100){sum=sum+i。} 括號(hào)不配對(duì)。 while語句后面少了右括號(hào)。第四節(jié) 程序調(diào)試問題16 / 26(第九章 編程技巧) 如: int a,b,c。 b=3。 大寫與小寫字母在 C語言中為兩個(gè)不同的標(biāo)識(shí)符。 如: int i,a(10)。i10。a(i))。 for(i=0。i++) scanf(“%d”,amp。 1 在定義元素時(shí),將定義的 “ 元素個(gè)數(shù) ” 誤認(rèn)為是 “ 可使用的最大下標(biāo)值 ” 。 for(i=1。i++) printf(“%d\t”,a[i])。 for應(yīng)為: for(i=0。i++) 1 對(duì)二維數(shù)組或多維數(shù)組的定義和引用的方法不對(duì)。 … printf(“%d”,a[1,2])。 數(shù)組的每一維下標(biāo)均應(yīng)該用一對(duì)方括號(hào)括起來。應(yīng)改為: int a[5][4]。 1 誤以為數(shù)組名代表數(shù)組中全部元素。 printf(“%d,%d,%d,%d\n”,a)。第四節(jié) 程序調(diào)試問題17 / 26(第九章 編程技巧) 如: char s1[20],*s2。 s2=“C and Computer”。 編譯出錯(cuò)。而 s2是指向字符數(shù)據(jù)的指針變量,對(duì) s2可以賦值。 或 char s1[20]=“Compu
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1