SQLITE源码剖析(5)

声明:本SQLite源码剖析系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

/************** Include sqlite3.h in the middle of sqliteInt.h ***************/

/************** Begin file sqlite3.h *****************************************/

//在sqliteInt.h中包含sqlite3.h

/*

** 2001 September 15

**

** The author disclaims copyright to this source code.  In place of

** a legal notice, here is a blessing:

**

**    May you do good and not evil.

**    May you find forgiveness for yourself and forgive others.

**    May you share freely, never taking more than you give.

**

*************************************************************************sqlite库的客户端接口,如果在这个文件中没有出现过某个C函数、

**结构、数据类型、或常量定义,那么它是不公开的SQLITE的API,

**不会声明随时有可能改变,也不能做为使用SQLITE开发的参考。

** This header file defines the interface that the SQLite library

** presents to client programs.  If a C-function, structure, datatype,

** or constant definition does not appear in this file, then it is

** not a published API of SQLite, is subject to change without

** notice, and should not be referenced by programs that use SQLite.

**有些定义被标明experimental(实验性的),这些接口不久会被加入SQLITE。

**虽然不希望改变实验性接口,会保留较小改变的权力,使用in the wild

**标明的地方要谨慎改变

** Some of the definitions that are in this file are marked as

** "experimental".  Experimental interfaces are normally new

** features recently added to SQLite.  We do not anticipate changes

** to experimental interfaces but reserve the right to make minor changes

** if experience from use "in the wild" suggest such changes are prudent.

**SQLITE的官方C语言API文档从注解生成,这个文件在SQLITE接口

**操作方面具有权威

** The official C-language API documentation for SQLite is derived

** from comments in this file.  This file is the authoritative source

** on how SQLite interfaces are suppose to operate.

** 构造管理文件是sqlite.h.in,makefile对这个文件

**(比如嵌入式版本中)做较小改动,build过程中其名改为sqlite3.h

** The name of this file under configuration management is "sqlite.h.in".

** The makefile makes some minor changes to this file (such as inserting

** the version number) and changes its name to "sqlite3.h" as

** part of the build process.

*/

#ifndef _SQLITE3_H_

#define _SQLITE3_H_

#include <stdarg.h>     

/*SQLITE接口需要va_list定义 Needed for the definition of va_list */

 

/*

** Make sure we can call this stuff from C++.

*/

// extern声明的函数和变量可以在本模块或其他模块中使用。

// extern "C"包含双重含义,其一:被它修饰的目标是“extern”的;

//其二:被它修饰的目标是“C”的。extern "C"仅被使用在C++调用C程

//序情况,C不能使用。#if 0把它屏蔽了,如果使用C++编译器,可以

//可以打开该选项

//比如test.cpp(C++源码文件)需要调用myc.h这个C头文件中

//用extern声明的函数,可以如下书写:

//extern "C"

//{

//#include "myc.h"

//}

#if 0

extern "C" {

#endif

 

 

/*

** Add the ability to override 'extern'

*/

//定义extern的宏,可使用SQLITE_EXTERN来完成extern功能

#ifndef SQLITE_EXTERN

# define SQLITE_EXTERN extern

#endif

//定义SQLITE_API宏

#ifndef SQLITE_API

# define SQLITE_API

#endif

 

 

你可能感兴趣的:(C++,c,sqlite,C#,嵌入式)