原創 C 中 extern C 用法小結

2021-08-25 04:13:31 字數 797 閱讀 1075

昨天晚上翻《c++ primer》偶爾看見介紹 extern "c" 的那一節,看著看著竟然有點糊塗了,覺得書上說的好像有點不對。記得以前也曾經看過這一節,也看過幾篇介紹這個的文章,這次又犯糊塗,看來還是以前沒有搞清楚。後來仔細看了看書上的介紹,又翻了一下《the c++ programming language》,總算清楚了一些,書上說的沒錯,是我以前理解的有問題。

在c++中 extern "c" 的兩種用法

1. 如果要在c++程式中呼叫c語言寫的函式, 在c++程式裡邊用 extern "c" 修飾要被呼叫的這個c程式,告訴c++編譯器此函式是c語言寫的,是c語言編譯器生成的,呼叫他的時候請按照c語言習慣傳遞引數等。如:

//在c++程式裡邊宣告該函式

extern"c

"int

strcmp(

const

char

*s1, 

const

char

*s2);

也可以這樣

//在c++程式裡邊宣告該函式

extern"c

" 2. 用c++語言寫的乙個函式,如果想讓這個函式可以被其他c語言程式所用,則用extern "c" 來告訴c++編譯器,請用c語言習慣來編譯此函式。如:

//在c++程式裡該函式

extern"c

"int

strcmp(

const

char

*s1, 

const

char

*s2)

return

*s1 -*

s2;}

C 中extern C 的用法

學習過c 的人都知道,extern關鍵字可以置於變數或者函式前,以標示變程式設計客棧量或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。這裡起到的是宣告作用範圍的用處。另外,extern還可以與 c 連用,作為鏈結指示。本文就此進行例項說明如下 一 c 名字修飾 nam...

C 中 Const用法小結

c 中const用法小結 關於c 中的const關鍵字的用法非常靈活,而使用const將大大改善程式的健壯性,參考了康建東兄的const使用詳解一文,對其中進行了一些補充,寫下了本文。1.const常量,如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編...

C 中Enum用法小結

enums列舉是值型別,資料直接儲存在棧中,而不是使用引用和真實資料的隔離方式來儲存。1 預設情況下,列舉中的第乙個變數被賦值為0,其他的變數的值按定義的順序來遞增 0,12,3.因此以下兩個 定義是等價的 csharp view plain copy enum trafficlight cshar...