加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 12.3  在C++中使用C頭文件
  • 相關推薦
  • 電子產業(yè)圖譜
申請入駐 產業(yè)圖譜

混合使用C、C++和匯編語之:在C++中使用C頭文件

2013/09/30
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

12.3  在C++中使用C頭文件

本節(jié)描述如何在C++代碼中使用C頭文件。從C++調用C頭文件之前,C頭文件必須包含在extern "C"命令中。本節(jié)包含以下兩部分內容:

·  在C++中使用系統(tǒng)的C頭文件;

·  在C++中使用自定義的C頭文件。

12.3.1  在C++中使用系統(tǒng)C頭文件

要包括標準的系統(tǒng) C 頭文件,如 stdio.h,不必進行任何特殊操作。只有使用extern "C" 命令,由編譯器自動包含標準 C 頭文件。例如:

#include <stdio.h>

int main()

{

     ...     // C++ 代碼

     return 0;

}

如果使用此語法包含頭文件,則所有庫名都放在全局命名空間中。

C++標準規(guī)定可以通過特定的C++頭文件獲取C頭文件。這些文件與標準C頭文件一起安裝在install_directoryRVCTData2.0build_num include platform目錄下,可以用常規(guī)方法進行引用。例如:

#include <cstdio>

int main()

{

    ...     // C++ 代碼

    return 0;

}

在ARM C++中,這些頭文件中包含(#include)C頭文件。如果使用此語法包含頭文件,則所有C++標準庫名都在命名空間std中定義,包括C庫名。這意味著必須使用下列方法之一來限定所有的庫名稱。

·  指定標準命名空間,例如:

std::printf("examplen");

·  使用C++關鍵字“using”向全局命名空間輸入一個名稱:

using namespace std;

printf("examplen");

·  使用編譯程序選項 --using_std。

12.3.2  在C++中使用自定義的C頭文件

要包含自己的C頭文件,用戶必須將#include命令包在extern "C"語句中??梢杂靡韵路椒ㄍ瓿纱瞬僮鳎?/p>

① 在#include文件之前使用extern,如下例所示。

// C++ code

extern "C" {

#include "my-header1.h"

#include "my-header2.h"

}

int main()

{

     // ...

     return 0;

}

·  將extern "C"語句添加到頭文件,如下例所示。

/* C header file */

#ifdef __cplusplus    /* Insert start of extern C construct */

extern "C" {

#endif

/* Body of header file */

#ifdef __cplusplus  /* Insert end of extern C construct */

}                   /* The C header file can now be */

#endif              /* included in either C or C++ code. */

Arm

Arm

ARM公司是一家知識產權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關推薦

電子產業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內領先嵌入師培訓機構,2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關的長期就業(yè)培訓、短期高端培訓、師資培訓及企業(yè)員工內訓等業(yè)務外,其下屬研發(fā)中心還負責嵌入式、Android及物聯(lián)網(wǎng)方向的教學實驗平臺的研發(fā)及培訓教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。