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() 语句,以验证这些接口返回的值是否与头文件中的宏匹配,从而确保应用程序使用匹配的库和头文件进行编译。
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[] 字符串常量的指针。sqlite3_libversion() 函数用于 DLL 中,因为 DLL 用户通常无法直接访问 DLL 中的字符串常量。sqlite3_libversion_number() 函数返回一个等于 SQLITE_VERSION_NUMBER 的整数。sqlite3_sourceid() 函数返回一个指向字符串常量的指针,其值与 SQLITE_SOURCE_ID C 预处理器宏相同。除非 SQLite 使用 合并文件 的编辑副本构建,否则哈希的最后四个字符可能与 SQLITE_SOURCE_ID 不同。
另请参阅:sqlite_version() 和 sqlite_source_id()。