加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 12.3  在C++中使用C头文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

混合使用C、C++和汇编语之:在C++中使用C头文件

2013/09/30
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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

本节描述如何在C++代码中使用C头文件。从C++调用C头文件之前,C头文件必须包含在extern "C"命令中。本节包含以下两部分内容:

·  在C++中使用系统的C头文件;

·  在C++中使用自定义的C头文件。

12.3.1  在C++中使用系统C头文件

要包括标准的系统 C 头文件,如 stdio.h,不必进行任何特殊操作。只有使用extern "C" 命令,由编译器自动包含标准 C 头文件。例如:

#include <stdio.h>

int main()

{

     ...     // C++ 代码

     return 0;

}

如果使用此语法包含头文件,则所有库名都放在全局命名空间中。

C++标准规定可以通过特定的C++头文件获取C头文件。这些文件与标准C头文件一起安装在install_directory\RVCT\Data\2.0\build_num \include \platform目录下,可以用常规方法进行引用。例如:

#include <cstdio>

int main()

{

    ...     // C++ 代码

    return 0;

}

在ARM C++中,这些头文件中包含(#include)C头文件。如果使用此语法包含头文件,则所有C++标准库名都在命名空间std中定义,包括C库名。这意味着必须使用下列方法之一来限定所有的库名称。

·  指定标准命名空间,例如:

std::printf("example\n");

·  使用C++关键字“using”向全局命名空间输入一个名称:

using namespace std;

printf("example\n");

·  使用编译程序选项 --using_std。

12.3.2  在C++中使用自定义的C头文件

要包含自己的C头文件,用户必须将#include命令包在extern "C"语句中。可以用以下方法完成此操作:

① 在#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处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相关推荐

电子产业图谱

华清远见(www.farsight.com.cn)是国内领先嵌入师培训机构,2004年注册于中国北京海淀高科技园区,除北京总部外,上海、深圳、成都、南京、武汉、西安、广州均有直营分公司。华清远见除提供嵌入式相关的长期就业培训、短期高端培训、师资培训及企业员工内训等业务外,其下属研发中心还负责嵌入式、Android及物联网方向的教学实验平台的研发及培训教材的出版,截止目前为止已公开出版70余本嵌入式/移动开发/物联网相关图书。企业理念:专业始于专注 卓识源于远见。企业价值观:做良心教育、做专业教育,更要做受人尊敬的职业教育。