Следующий код - это, например, 1030432081
(что неверно) при компиляции с gcc -m32 time.c
, тогда как он отлично работает при компиляции без флага -m32
. Есть ли способ заставить это работать?Как использовать uint64_t и -m32?
#include <sys/time.h>
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
void test() {
struct timeval t;
gettimeofday(&t, NULL);
uint64_t microseconds = t.tv_usec + t.tv_sec * 1000000;
printf("%"PRId64, microseconds);
}
int main() {
test();
}
'(uint64_t) 1000000' –
Это решает проблему. Можете ли вы объяснить, почему? (Если вам нравится, отправьте его как ответ) – ben