Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将sqlite3_int64转换为long?_C_Sqlite - Fatal编程技术网

C 如何将sqlite3_int64转换为long?

C 如何将sqlite3_int64转换为long?,c,sqlite,C,Sqlite,我正在使用C api从sqlite3数据库读取数据。sqlite3_列_int64返回sqlite3_int64对象。如何将其转换为long?C中的long通常是32位,而您看到的是来自sqlite的64位整数。只要使用C,就可以使用long类型 以下是您可以参考的内容: 我会尝试将sqlite3_int64作为long-long int去引用,并通过执行sizeof(long-long)来查看它是否有效 编辑:我找到了sqlite_int64的typedefs,您也可以将其作为参考: 您应该

我正在使用C api从sqlite3数据库读取数据。sqlite3_列_int64返回sqlite3_int64对象。如何将其转换为long?

C中的long通常是32位,而您看到的是来自sqlite的64位整数。只要使用C,就可以使用long类型

以下是您可以参考的内容:

我会尝试将sqlite3_int64作为long-long int去引用,并通过执行sizeof(long-long)来查看它是否有效

编辑:我找到了sqlite_int64的typedefs,您也可以将其作为参考:


您应该使用stdint.h中定义的标准整数类型。然后,您可以使用int64\t,并知道在每个平台上它都将是64位宽的

然后,您可以将sqlite3_int64强制转换为int64_t,就可以了。

sizeof(long-long*)在32位系统上可能是4。ITYM sizeof(长-长)。