прототип системы int64_t или offset64 как для Linux, так и для 32-битной системы - PullRequest
0 голосов
/ 27 ноября 2009

Я занимаюсь разработкой приложения, которому нужны функции переменных int64. и мне сказали, что offset64 или int64_t жизнеспособны для моих нужд ... Но я просто хочу, что является прототипом int64 под 32-битной системой ... Как я могу использовать переменную. это структура, которая состоит из двух ULONG? спасибо!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2009

Обычно нет причин, по которым компилятор не может поддерживать 64-битные целочисленные типы прозрачно на 32-битной (или меньшей) платформе, поскольку она может генерировать код необходимо обрабатывать их небольшими порциями, когда они используются. насколько мне известно любой C99-совместимый компилятор должен прозрачно поддерживать 64-битные типы через заголовочный файл stdint.h, который определяет такие типы, как int64_t и Вы можете использовать их так же, как и любой другой тип целого числа.

[Изменить] Пример:

#include <stdint.h>
#include <stdio.h>
int main(void) {
        int64_t x = 0x1000000000LL;

        x = x*2;
        printf("%llX\n", x);
}
1 голос
/ 27 ноября 2009

Используйте long long, его поддерживают и msvc, и gcc.

...