一、用C/C++連接Oracle數(shù)據(jù)庫的復(fù)雜程度比用Java/C#連接要高許多倍的原因
1、Oracle官方庫支持不足
Oracle 數(shù)據(jù)庫沒有提供官方的C/C++驅(qū)動程序,開發(fā)者需要使用第三方庫比如occi、ODBC 或者JDBC,這些工具具有更多的功能但可能也會增加復(fù)雜度。
2、數(shù)據(jù)類型映射
Oracle 數(shù)據(jù)庫支持的數(shù)據(jù)類型相對較多,這些數(shù)據(jù)類型映射到 C/C++ 數(shù)據(jù)類型需要開發(fā)者花費(fèi)較多時(shí)間。
3、內(nèi)存管理
C/C++沒有像 Java/C# 有垃圾回收機(jī)制可以自動管理內(nèi)存,因此需要編寫代碼來手動進(jìn)行內(nèi)存管理,這會使程序更加復(fù)雜。
4、異常處理
C/C++中異常處理機(jī)制非常基礎(chǔ),相較于 Java/C# 更為復(fù)雜,需要手動編寫代碼來處理異常情況。
5、線程管理
C/C++中需要用到線程來保證應(yīng)用程序的可用性,而線程同步和鎖機(jī)制也會在也會增加復(fù)雜度。
二、C語言介紹
1、簡介
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++、C#、Java等面向?qū)ο缶幊陶Z言有所不同。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。C語言一般只比匯編語言代碼生成的目標(biāo)程序效率低10%-20%。因此,C語言可以編寫系統(tǒng)軟件。
當(dāng)前階段,在編程領(lǐng)域中,C語言的運(yùn)用非常之多,它兼顧了高級語言和匯編語言的優(yōu)點(diǎn),相較于其它編程語言具有較大優(yōu)勢。計(jì)算機(jī)系統(tǒng)設(shè)計(jì)以及應(yīng)用程序編寫是C語言應(yīng)用的兩大領(lǐng)域。同時(shí),C語言的普適較強(qiáng),在許多計(jì)算機(jī)操作系統(tǒng)中都能夠得到適用,且效率顯著。C語言擁有經(jīng)過了漫長發(fā)展歷史的完整的理論體系,在編程語言中具有舉足輕重的地位。
2、語言特點(diǎn)
C語言是一種結(jié)構(gòu)化語言,它有著清晰的層次,可按照模塊的方式對程序進(jìn)行編寫,十分有利于程序的調(diào)試,且c語言的處理和表現(xiàn)能力都非常的強(qiáng)大,依靠非常全面的運(yùn)算符和多樣的數(shù)據(jù)類型,可以輕易完成各種數(shù)據(jù)結(jié)構(gòu)的構(gòu)建,通過指針類型更可對內(nèi)存直接尋址以及對硬件進(jìn)行直接操作,因此既能夠用于開發(fā)系統(tǒng)程序,也可用于開發(fā)應(yīng)用軟件。通過對C語言進(jìn)行研究分析,總結(jié)出其主要特點(diǎn)如下:
簡潔的語言:C語言包含的各種控制語句僅有9種,關(guān)鍵字也只有32個(gè),程序的編寫要求不嚴(yán)格且以小寫字母為主,對許多不必要的部分進(jìn)行了精簡。實(shí)際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進(jìn)行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。具有結(jié)構(gòu)化的控制語句:C語言是一種結(jié)構(gòu)化的語言,提供的控制語句具有結(jié)構(gòu)化特征,如for語句、if…else語句和switch語句等。可以用于實(shí)現(xiàn)函數(shù)的邏輯控制,方便面向過程的程序設(shè)計(jì)。豐富的數(shù)據(jù)類型:C語言包含的數(shù)據(jù)類型廣泛,不僅包含有傳統(tǒng)的字符型、整型、浮點(diǎn)型、數(shù)組類型等數(shù)據(jù)類型,還具有其他編程語言所不具備的數(shù)據(jù)類型,其中以指針類型數(shù)據(jù)使用最為靈活,可以通過編程對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行計(jì)算。豐富的運(yùn)算符:C語言包含34個(gè)運(yùn)算符,它將賦值、括號等均視作運(yùn)算符來操作,使C程序的表達(dá)式類型和運(yùn)算符類型均非常豐富。可對物理地址進(jìn)行直接操作:C語言允許對硬件內(nèi)存地址進(jìn)行直接讀寫,以此可以實(shí)現(xiàn)匯編語言的主要功能,并可直接操作硬件。C語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優(yōu)勢,故在系統(tǒng)軟件編程領(lǐng)域有著廣泛的應(yīng)用。代碼具有較好的可移植性:C語言是面向過程的編程語言,用戶只需要關(guān)注所被解決問題的本身,而不需要花費(fèi)過多的精力去了解相關(guān)硬件,且針對不同的硬件環(huán)境,在用C語言實(shí)現(xiàn)相同功能時(shí)的代碼基本一致,不需或僅需進(jìn)行少量改動便可完成移植,這就意味著,對于一臺計(jì)算機(jī)編寫的C程序可以在另一臺計(jì)算機(jī)上輕松地運(yùn)行,從而極大的減少了程序移植的工作強(qiáng)度。可生成高質(zhì)量、目標(biāo)代碼執(zhí)行效率高的程序:與其他高級語言相比,C語言可以生成高質(zhì)量和高效率的目標(biāo)代碼,故通常應(yīng)用于對代碼質(zhì)量和執(zhí)行效率要求較高的嵌入式系統(tǒng)程序的編寫。3、特有特點(diǎn)
C語言是普適性較早的一種計(jì)算機(jī)程序編輯語言,它不僅可以發(fā)揮出高級編程語言的功用,還具有匯編語言的優(yōu)點(diǎn),因此相對于其它編程語言,它具有自己獨(dú)特的特點(diǎn)。具體體現(xiàn)為以下三個(gè)方面:
廣泛性:C語言的運(yùn)算范圍的大小直接決定了其優(yōu)劣性。C語言中包含了34種運(yùn)算符,因此運(yùn)算范圍要超出許多其它語言,此外其運(yùn)算結(jié)果的表達(dá)形式也十分豐富。此外,C語言包含了字符型、指針型等多種數(shù)據(jù)結(jié)構(gòu)形式,因此,更為龐大的數(shù)據(jù)結(jié)構(gòu)運(yùn)算它也可以應(yīng)付。簡潔性:9類控制語句和32個(gè)關(guān)鍵字是C語言所具有的基礎(chǔ)特性,使得其在計(jì)算機(jī)應(yīng)用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時(shí)還能夠支持高級編程,避免了語言切換的繁瑣。結(jié)構(gòu)完善:C語言是一種結(jié)構(gòu)化語言,它可以通過組建模塊單位的形式實(shí)現(xiàn)模塊化的應(yīng)用程序,在系統(tǒng)描述方面具有顯著優(yōu)勢,同時(shí)這一特性也使得它能夠適應(yīng)多種不同的編程要求,且執(zhí)行效率高。4、缺點(diǎn)
C語言的數(shù)據(jù)的封裝性弱:這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別。C語言的語法限制不太嚴(yán)格:對變量的類型約束不嚴(yán)格,影響程序的安全性,對數(shù)組下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設(shè)計(jì)更熟練一些。延伸閱讀1:C++簡介
C++(c plus plus)是一種計(jì)算機(jī)高級程序設(shè)計(jì)語言,由C語言擴(kuò)展升級而產(chǎn)生,較早于1979年由本賈尼·斯特勞斯特盧普在AT&T貝爾工作室研發(fā)。C++既可以進(jìn)行C語言的過程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++擅長面向?qū)ο蟪绦蛟O(shè)計(jì)的同時(shí),還可以進(jìn)行基于過程的程序設(shè)計(jì)。 C++幾乎可以創(chuàng)建任何類型的程序:游戲、設(shè)備驅(qū)動程序、HPC、云、桌面、嵌入式和移動應(yīng)用等。 甚至用于其他編程語言的庫和編譯器也使用C++編寫。