九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問I/O空間中所有地址的最外層特權(quán)級(jí)。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級(jí)執(zhí)行的程序所訪問。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見,當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問;否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見,TSS內(nèi)偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對(duì)應(yīng)I/O端口00H—3FH DB 10000000B ;對(duì)應(yīng)I/O端口40H—47H DB 01100000B ;對(duì)用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實(shí)行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見,不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問的許可檢查總被認(rèn)為不可訪問而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過任務(wù)門調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過任務(wù)門調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過任務(wù)門調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過任務(wù)門調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過任務(wù)門調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。
上傳時(shí)間: 2013-12-11
上傳用戶:nunnzhy
/* RSA Demo 1.0 版 * 版權(quán)所有 (C) 2004 趙春生 * 2004.04.25 * http://timw.yeah.net * http://timw.126.com * 本程序調(diào)用Miracl ver 4.82大數(shù)運(yùn)算庫(kù),詳見其附帶手冊(cè)。 * P,Q,N,D,E使用RSATool2生成。 */ 編譯提示: 一:將Project-Settings-Settings For(All Configuration)-C/C++中Category項(xiàng)的 Precompiled Headers設(shè)置成:Automatic use of precompiled headers(圖1)。 二:將ms32.lib添加到工程中(圖2)。 三:MIRACL是C庫(kù)。 extern "C" { #include "miracl.h" #include "mirdef.h" } #pragma comment( lib, "ms32.lib" )
上傳時(shí)間: 2015-03-23
上傳用戶:leehom61
/* RSA Demo 1.0 版 * 版權(quán)所有 (C) 2004 趙春生 * 2004.04.25 * http://timw.yeah.net * http://timw.126.com * 本程序調(diào)用Miracl ver 4.82大數(shù)運(yùn)算庫(kù),詳見其附帶手冊(cè)。 * P,Q,N,D,E使用RSATool2生成。 */ 編譯提示: 一:將Project-Settings-Settings For(All Configuration)-C/C++中Category項(xiàng)的 Precompiled Headers設(shè)置成:Automatic use of precompiled headers(圖1)。 二:將ms32.lib添加到工程中(圖2)。 三:MIRACL是C庫(kù)。 extern "C" { #include "miracl.h" #include "mirdef.h" } #pragma comment( lib, "ms32.lib" )
上傳時(shí)間: 2013-12-17
上傳用戶:liansi
設(shè)計(jì)模式——訪問者模式 Visitor模式允許我們?cè)诓桓膭?dòng)原有結(jié)構(gòu)的基礎(chǔ)之上不斷增加新的功能。 ICumulation接口定義了方法Cumulate(),旨在計(jì)算1+2+……+n,有兩種不同的實(shí)現(xiàn)方法,一個(gè)是一般的疊加算法GeneralArithmetic,一個(gè)是高斯算法GaoSiArithmetic。 因?yàn)槟撤N原因,系統(tǒng)需要添加求平均值的功能,還有計(jì)算1到n的平方和。 按照一般的思路,我們需要在ICumulation中定義兩個(gè)方法分別計(jì)算平均值和平方和,并在實(shí)現(xiàn)類中同時(shí)添加相應(yīng)的方法。在搭建了visitor模式的架構(gòu)以后,添加功能的代碼被移植到ICumulationVisitor中,添加的兩種功能也分別被以子類AverageVisitor和PowerVisitor實(shí)現(xiàn)。 功能的擴(kuò)展從在類中添加方法的方式變成了添加新類的方式,該類繼承一定的Visitor接口。這是一個(gè)90度的轉(zhuǎn)換,使得架構(gòu)符合開放封閉(OCP)原則:功能的擴(kuò)展無需改動(dòng)原有代碼。 同時(shí),這里也體現(xiàn)了單一職責(zé)原則(SRP),ICumulation層次結(jié)構(gòu)可以因?yàn)槌霈F(xiàn)了不同的算法而改變,但是不應(yīng)該因?yàn)樾枰?jì)算不同的東西(功能)而改變,算法和功能是橫向和縱向的關(guān)系。這里visitor模式隔離了算法和功能,ICumulation層次結(jié)構(gòu)負(fù)責(zé)算法,ICumulationVisitor層次結(jié)構(gòu)負(fù)責(zé)功能。
標(biāo)簽: ICumulation Cumulate Visitor 模式
上傳時(shí)間: 2015-06-12
上傳用戶:上善若水
最小生成樹問題 若要在n個(gè)城市之間建設(shè)通信網(wǎng)絡(luò),只需要架設(shè)n-1條線路即可。如何以最低的經(jīng)濟(jì)代價(jià)建設(shè)這個(gè)通信網(wǎng),是一個(gè)網(wǎng)的最小生成樹問題。 (1)利用克魯斯卡爾算法求網(wǎng)的最小生成樹。 (2)實(shí)現(xiàn)教科書6.5節(jié)中定義的抽象樹類型 MFSet。以此表示構(gòu)造生成樹過程中的連通分量。 (3)以文本形式輸出生成樹中各條邊以及他們的權(quán)值。
標(biāo)簽: 生成樹 城市 通信網(wǎng)絡(luò)
上傳時(shí)間: 2015-11-10
上傳用戶:jhksyghr
在傳統(tǒng)模式下利用人工進(jìn)行學(xué)生信息管理,存在著較多的缺點(diǎn),如:效率底,保密性差,時(shí)間一長(zhǎng)將產(chǎn)生大量的文件和數(shù)據(jù),更不便于查找,更新,維護(hù)等。諸如這些情況,令學(xué)校管理者對(duì)學(xué)生的信息管理帶來了很大困難,嚴(yán)重影響了教育工作者的工作效率,針對(duì)這些情況,我們可使用日趨成熟的計(jì)算機(jī)技術(shù)來代替?zhèn)鹘y(tǒng)的人工模式,來實(shí)現(xiàn)學(xué)生信息的現(xiàn)代化管理,這一技術(shù)具有手工管理所無法比擬的優(yōu)點(diǎn),如:檢索迅速,查找方便,可靠性高,存儲(chǔ)量大,保密性好,壽命長(zhǎng),成本底等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生信息管理的效率,使我們的學(xué)校在市場(chǎng)經(jīng)濟(jì)的發(fā)展過程中具有一定的競(jìng)爭(zhēng)優(yōu)勢(shì),也是企業(yè)實(shí)現(xiàn)科學(xué)化,正規(guī)化,現(xiàn)代化的重要條件。 用計(jì)算機(jī)制作的學(xué)生信息化管理系統(tǒng)還可以通過功能強(qiáng)大的Internet網(wǎng)及時(shí)的向?qū)W生的家長(zhǎng)傳遞該生在校的最新成績(jī),有助于學(xué)校與家長(zhǎng)的信息互動(dòng),為更好地把握學(xué)校的教育方針起到了一定的促進(jìn)作用!
上傳時(shí)間: 2016-02-26
上傳用戶:yoleeson
BM 算法是一個(gè)較優(yōu)的模式匹配算法。一般,如果不考慮模式串的長(zhǎng)度,一個(gè)具有時(shí)間復(fù)雜度O(n)的算法應(yīng)該是最優(yōu)的了,但是事實(shí)不是如此。BM算法可以實(shí)現(xiàn)更高效率的模式匹配。分析和實(shí)驗(yàn)說明,BM匹配算法對(duì)于那些字符集比較大,而模式串中出現(xiàn)的字符比較少的時(shí)候,工作效率最快。而且,考慮KMP匹配方式的優(yōu)化,可以結(jié)合KMP匹配和BM匹配,進(jìn)一步提高效率。
上傳時(shí)間: 2013-12-19
上傳用戶:CHENKAI
基于J2EE的物流信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 介紹了J2EE 體系結(jié)構(gòu)、Mv c模式等相關(guān)概念和技術(shù),并重點(diǎn)探討了 目 前比 較受歡迎的三種開源框架( s t r ut s框架、S Pr i n g框架和H i b e m a t e 框架)。 分析了他們的體系結(jié)構(gòu)、 特點(diǎn)和優(yōu)缺點(diǎn)。 根據(jù)J ZE E的分層結(jié)構(gòu),結(jié)合We b應(yīng)用 的特點(diǎn), 將三種框架進(jìn)行組合設(shè)計(jì), 即表現(xiàn)層用S t r ut s框架、 業(yè)務(wù)邏輯層用S P ri n g 框架、持久層用比b ema t e 框架,從而來構(gòu)建物流信息系統(tǒng)。這種整合框架使各 層相對(duì)獨(dú)立, 減少各層之間的禍合程度,同時(shí)加快了系統(tǒng)的開發(fā)過程,增強(qiáng)了系 統(tǒng)的可維護(hù)性和可擴(kuò)展性,初步達(dá)到了分布式物流信息系統(tǒng)的設(shè)計(jì)目標(biāo)。 經(jīng)過以上分析,結(jié)合物流系統(tǒng)的業(yè)務(wù)需求,進(jìn)行了相關(guān)的實(shí)現(xiàn)。最后,系統(tǒng) 運(yùn)用先進(jìn)的A ja x技術(shù)來增強(qiáng)Ui層與服務(wù)器的異步通信能力, 使用戶體驗(yàn)到動(dòng)態(tài) 且響應(yīng)靈 敏的桌 面級(jí)w e b應(yīng)用程序。 通過江聯(lián)公司的試運(yùn)行結(jié)果,系統(tǒng)達(dá)到了 渝瞇。 并 且 對(duì) 江 聯(lián) 公 司 提 出 了 基 于 R F I D 的 解 決 方 案 的 實(shí) 施 計(jì) 劃 。
上傳時(shí)間: 2016-06-01
上傳用戶:ynsnjs
在GIS領(lǐng)域中,目前正有一新興的架構(gòu)模式產(chǎn)生,此架構(gòu)改變了GIS處理圖資的方式,此架構(gòu)模式稱為DGIS(Distributed GIS-分散式地理資訊系統(tǒng))。DGIS將傳統(tǒng)桌上型單機(jī)作業(yè)之GIS概念延伸至網(wǎng)際網(wǎng)路(Web)之解決方案上,以能符合現(xiàn)行系統(tǒng)圖資處理之需求。而此種以分散式概念延伸至網(wǎng)際網(wǎng)路的架構(gòu)稱之為網(wǎng)際網(wǎng)路地理資訊系統(tǒng)(WebGIS或Internet GIS)。
標(biāo)簽: GIS
上傳時(shí)間: 2014-01-17
上傳用戶:dongbaobao
這本書是多年來我對(duì)專業(yè)程式員所做的C++ 教學(xué)課程下的一個(gè)自然產(chǎn)物。我發(fā)現(xiàn),大部份學(xué)生在一個(gè)星期的密集訓(xùn)練之後,即可適應(yīng)這個(gè)語言的基本架構(gòu),但要他們「將這些基礎(chǔ)架構(gòu)以有效的方式組合運(yùn)用」,我實(shí)在不感樂觀。於是我開始嘗試組織出一些簡(jiǎn)短、明確、容易記憶的準(zhǔn)則,做為C++ 高實(shí)效性程式開發(fā)過程之用。那都是經(jīng)驗(yàn)豐富的C++ 程式員幾乎總是會(huì)奉行或幾乎肯定要避免的一些事情。structures of computer science.
標(biāo)簽: 程式
上傳時(shí)間: 2016-10-13
上傳用戶:362279997
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1