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()。