SQLITE_EXTERN const char sqlite3_version []; const char * sqlite3_libversion(void); const char * sqlite3_sourceid(void); int sqlite3_libversion_number(void);
这些接口提供与SQLITE_VERSION,SQLITE_VERSION_NUMBER和SQLITE_SOURCE_ID C预处理程序宏相同的信息, 但与库而不是头文件关联。谨慎的程序员可能在其应用程序中包含assert()语句,以验证这些接口返回的值与标头中的宏相匹配,从而确保使用匹配的库和标头文件来编译应用程序。
断言(sqlite3_libversion_number()== SQLITE_VERSION_NUMBER); assert(strncmp(sqlite3_sourceid(),SQLITE_SOURCE_ID,80)== 0); assert(strcmp(sqlite3_libversion(),SQLITE_VERSION)== 0);
sqlite3_version []字符串常量包含SQLITE_VERSION 宏的文本。sqlite3_libversion()函数返回一个指向sqlite3_version []字符串常量的指针。由于DLL用户通常无法直接访问DLL中的字符串常量,因此提供了sqlite3_libversion()函数供DLL使用。sqlite3_libversion_number()函数返回一个等于SQLITE_VERSION_NUMBER的整数 。sqlite3_sourceid()函数返回一个指向字符串常量的指针,该字符串常量的值与 SQLITE_SOURCE_ID C预处理程序宏相同。除非SQLite是使用合并的编辑副本构建的,否则哈希的最后四个字符可能与SQLITE_SOURCE_ID不同。