Как мне преобразовать sqlite3_int64 в long? - PullRequest
1 голос
/ 18 июня 2009

Я читаю данные из базы данных sqlite3, используя C api. sqlite3_column_int64 возвращает объект sqlite3_int64. Как я могу преобразовать это в длинный?

Ответы [ 2 ]

2 голосов
/ 07 июля 2009

Вы должны использовать стандартные целочисленные типы, определенные в stdint.h. Затем вы можете использовать int64_t и знать, что на каждой платформе он будет иметь ширину 64 бита.

Затем вы можете просто преобразовать sqlite3_int64 в int64_t, и все готово.

0 голосов
/ 18 июня 2009

Длина в C обычно составляет 32 бита, тогда как вы смотрите 64-битное целое число из sqlite. Пока вы используете C, вы можете использовать тип long long.

Вот кое-что, на что вы можете ссылаться:

http://home.att.net/~jackklein/c/inttypes.html#long_long

Я бы попробовал разыменовать sqlite3_int64 как long long int и посмотреть, работает ли он с помощью sizeof (long long)

РЕДАКТИРОВАТЬ: я нашел typedefs для sqlite_int64, который вы также можете посмотреть в качестве ссылки:

http://www.sqlite.org/c3ref/int64.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...