教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

C++培訓之CC++混合編程技術(shù)揭秘

更新時間:2015年12月28日15時55分 來源:傳智播客C/C++學科 瀏覽次數(shù):

  1. C/C++語言概述

    是一種通用編程語言,廣泛用于系統(tǒng)軟件和應用程序的開發(fā)。為了移植和開發(fā)UNIX操作系統(tǒng),由丹尼斯里奇和肯湯普遜與1969年到1973年間以B語言為基礎(chǔ)在貝爾實驗室設計和開發(fā)出來的。

    語言具有高效、靈活、功能豐富、表達力強和較高可移植性等特點,在程序員中備受青睞,成為最近25年使用最為廣泛的編程語言。

    目前,C語言編譯器普遍存在于各種不同的操作系統(tǒng)中,例如Microsoft Windows, Mac OS X, Linux,Unix等。C語言的設計影響了眾多后來的編程語言,例如C++、Objective-C、Java、C#等。

    是一種一種廣泛使用的計算機程序設計語言。它是一種通用程序設計語言,靜態(tài)數(shù)據(jù)類型檢查,支持多重編程范式,例如過程化程序設計、數(shù)據(jù)抽象化、面向?qū)ο蟪绦蛟O計、泛型程序設計、基于原則設計等。

    貝爾實驗室的比雅尼·斯特勞斯特魯普博士在20世紀80年代發(fā)明并實現(xiàn)了C++。

    語言發(fā)展大概可以分為三個階段:

    第一階段從80年代到1995年。這一階段C++語言基本上是傳統(tǒng)類型上的面向?qū)ο笳Z言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據(jù)了相當大份額;

    第二階段從1995年到2000年,這一階段由于標準模板庫(STL)和后來的Boost等程序庫的出現(xiàn),泛型程序設計在C++中占據(jù)了越來越多的比重性。當然,同時由于Java、C#等語言的出現(xiàn)和硬件價格的大規(guī)模下降,C++受到了一定的沖擊;

    第三階段從2000年至今,由于以Loki、MPL等程序庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++出現(xiàn)了發(fā)展歷史上又一個新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++已經(jīng)成為當今主流程序設計語言中最復雜的一員。

    誠然編程語言技術(shù)演進很快,然而 C/C++作為通用語言擁有極其強大的生命力,這正是C/C++在編程語言排行榜上使用能夠傲視群雄的關(guān)鍵所在。

    C++的函數(shù)重載的本質(zhì)

    如果了解C的朋友應該知道C語言沒有函數(shù)重載的概念,在C語言中函數(shù)名不能相同;

    那么C++脫胎于C語言,實現(xiàn)重載的本質(zhì)是什么呢?

    下面寫一個簡單的C語言代碼并查看符號表當中的標識

    下面我們稍微修改一下成為C++代碼

    查看符號表發(fā)現(xiàn)符號表中名字原來被改變了

    C++中調(diào)用C語言

    從上一章節(jié)可以看出來,C++語言和C語言對符號表有不同的處理。由于C++兼容C語言的特性,所以C++提供了能夠跨語言調(diào)用的方法去調(diào)用C語言函數(shù)。

    那么這個利器就是----------extern “C”關(guān)鍵字,也就是說在C中不存在這樣一個關(guān)鍵字。

    那么關(guān)鍵字的用途就是用以表示該函數(shù)是C風格的函數(shù),這樣最終在鏈接的時候會去尋找C相應處理的符號表而不會導致找不到標識。

    首先以extern “C”修飾C函數(shù)的聲明

    然后在源代碼中實現(xiàn)相應的函數(shù)代碼

    先只編譯test_header.c

    將調(diào)用程序編譯并且和上一步生成的二進制文件進行鏈接

    執(zhí)行

    本文版權(quán)歸傳智播客C++培訓學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

    作者:傳智播客C/C++培訓學院

    首發(fā):http://m.8y3kgpwe.cn/c/

0 分享到:
和我們在線交談!