2009-06-18 2 views

ответ

0

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

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

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

Я хотел бы попробовать разыменовании sqlite3_int64 как долго долго ИНТ и посмотреть, если он работает, делая SizeOf (длинный длинный)

EDIT: Я нашел определения типов для sqlite_int64, которые вы можете посмотреть на также в качестве справки:

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

+2

sizeof (long long *), вероятно, будет 4 на 32-битной системе. ITYM sizeof (длинный длинный). –

+0

Хороший звонок, спасибо Синан. – AlbertoPL

2

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

Затем вы можете просто перевести sqlite3_int64 в int64_t, и вам хорошо идти.

Смежные вопросы