20200528_extern C 詳解

20200528_extern C 詳解

每日小知識

在win10之前,xbox上的遊戲只能在xbox遊戲機玩,win10之後,部分遊戲支持xbox和win10同時玩,而且只購買一次即可。

一、相關術語

  • extern C
    C++關鍵詞,用於C++調用C編譯後的函數。

二、主要作用

extern “C” 的主要作用是爲了實現C++代碼調用其他C語言代碼。
加上extern “C” 後,將指示編譯器這部分代碼將按照C語言的方式進行編譯。

由於C++支持函數重載,因此編譯器編譯函數的過程中會將【函數的參數類型】也加到編譯後的代碼中。
而C語言不支持函數重載,因此編譯器編譯函數時只包括函數名。

三、用在哪裏

1、C++調用C語言代碼
2、在C++的頭文件中使用
3、多人合作時,有人擅長C,有人擅長C++。

三、例子

這裏設計一個例子,【testa.c】裏面有一個函數,要被【main.cpp】調用。注意,testa是C文件,main.cpp是C++。

//testa.h
#ifndef _TEST_C_H
#define _TEST_C_H

int c_function(int a, int b);

#endif


//testa.c
#include "testa.h"

int c_function(int a, int b)
{
	return a + b;
}


//extern_c_main_20200528.h
#ifndef _EXTERN_C_MAIN
#define _EXTERN_C_MAIN

#ifdef __cplusplus
extern "C" {
#include "testa.h"
}
#endif

#endif


//extern_c_main_20200528.cpp
#include <iostream>
#include "extern_c_main_20200528.h"

int main(int argc, char* argv[])
{
	std::cout << c_function(9, 2) << "\n";

	return 0;
}

本文歸類

建議歸類到【C++】。

明日計劃

標題:七層網絡結構
小知識:打字時造成屏幕隨桌子晃動。

參考文獻:

《C++筆試面試寶典2011版》,49。

extern “C” 的作用詳解——狂奔~——cnblogs
https://www.cnblogs.com/xiangtingshen/p/10980055.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章