__BEGIN_DECLS __END_DECLS

http://hi.baidu.com/xiaoxiaolq/blog/item/1edc2af30dd4915a342acc5e.html
__BEGIN_DECLS 和 __END_DECLS 的理解

在C语言代码中头文件中,充斥着下面的代码片段:(sys/cdefs.h)

  1. __BEGIN_DECLS
  2. .....
  3. .....
  4. __END_DECLS
  1. #if defined(__cplusplus)
  2. #define __BEGIN_DECLS extern "C" {
  3. #define __END_DECLS }
  4. #else
  5. #define __BEGIN_DECLS
  6. #define __END_DECLS
  7. #endif

扩充C语言在编译的时候按照C++编译器进行统一处理,使得C++代码能够调用C编译生成的中间代码。

由于C语言的头文件可能被不同类型的编译器读取,因此写C语言的头文件必须慎重。

时间: 2024-11-25 12:45:45

__BEGIN_DECLS __END_DECLS的相关文章

基于TINY4412的Andorid开发-------简单的LED灯控制【转】

本文转载自:http://www.cnblogs.com/pengdonglin137/p/3857724.html 基于TINY4412的Andorid开发-------简单的LED灯控制 阅读目录(Content) 一.编写驱动程序 二.编写代码测试驱动程序 三.编写HAL代码 四.编写Framework代码 五.编写JNI代码 六.编写App 参考资料: <Andriod系统源代码情景分析> <嵌入式Linux系统开发完全手册_基于4412_上册> 作者:彭东林 邮箱:[em

从java层到framework到JNI到HAL到kernel的hello 例子

转载自 http://blog.csdn.net/Luoshengyang/article/category/838604/3 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了.据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore.随着Androi

Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层访问硬件驱动

Android 标准的硬件驱动分为两个部分,一个是运行在linux内核里的硬件驱动,而另外一部分是运行在用户空间的硬件抽象层.采用这种方法,就可以使系统具有硬件无关性,也保护了部分厂商的利益.在Android 从硬件到应用:一步一步向上爬 1 -- 从零编写底层硬件驱动程序中已经有了编写硬件驱动到linux内核里的步骤,下面就要接着这个工程去看看怎么在硬件抽象层增加硬件模块和我们的内核驱动程序进行交互,完成硬件控制. 进入hardware/libhardware/include/hardware

第1课第4.4节_Android硬件访问服务编写HAL代码

4 编写HAL代码 源码下载方法 第一次: git clone https://github.com/weidongshan/SYS_0001_LEDDemo.git 更新: git pull origin 取出指定版本: git checkout v1 // 有JNI没有HAL git checkout v2 // 有JNI,HAL git checkout v3 // add MODULE TAG, DEVICE TAG JNI 向上提供本地函数, 向下加载HAL文件并调用HAL的函数HAL

Data Types in the Kernel &amp;lt;LDD3 学习笔记&amp;gt;

Data Types in the Kernel Use of Standard C Types /* * datasize.c -- print the size of common data items * This runs with any Linux kernel (not any Unix, because of <linux/types.h>) * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyr

【linux c learn 之stat】获取文件的属性

NAME stat 获取文件属性 这个函数位于<sys/stat.h>头文件中 函数原型: int stat(const char *path, struct stat *buf); 参数: path  文件路径+文件名 buf     指向buffer的指针 返回值: -1   遇到错误 0    成功返回 函数作用: 把path文件的信息复制到指针buf所指的结构体中. 描述 stat结构体: struct stat { dev_t st_dev; /* ID of device cont

【转】Android 驱动开发系列四

原文网址:http://www.2cto.com/kf/201304/202040.html 时隔多日,终于都抽出时间来写blog了.废话不多说,接着上一篇,这里将介绍如何编写HAL层(硬件抽象层)对应的JNI方法. 这里提到的都是在ICS源码里编译的. 1.定义JNI层接口进入到android-4.0.4_r1.2/hardware/libhardware/include/hardware目录,并创建 ttt.h 文件,内容如下: [cpp]#ifndef ANDROID_TTT_INTERF

Data Types in the Kernel &lt;LDD3 学习笔记&gt;

Data Types in the Kernel Use of Standard C Types /* * datasize.c -- print the size of common data items * This runs with any Linux kernel (not any Unix, because of <linux/types.h>) * * Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet * Copyr

Tiny4412 LED 硬件服务

1.Android系统中启动框架 2.首先实现驱动程序 #include <linux/kernel.h> #include <linux/module.h> #include <linux/miscdevice.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/types.h> #include <linux/moduleparam.h>