Próbuję napisać kod między platformami w C++ dla Windows (MinGW) i Linux (g ++). Byłem używany do definiowania 64-bitowych liczb całkowitych w systemie Linux jako "długi", ale kiedy przeniosłem się do MinGW, sizeof (long) zwrócił 4 bajty. Potem odkryłem, że mogę użyć "long long" lub "__INT64", aby zdefiniować 64-bitowe liczby całkowite w MinGW. Mam dwa pytania:Definicja cross-platform 64-bitowych liczb całkowitych w C++ dla Windows i Linux
1. Jaki jest najbardziej przenośny sposób definiowania 64-bitowych liczb całkowitych dla systemów Windows i Linux? Obecnie używam #ifdef, ale nie wiem, czy jest to najlepszy sposób, aby to zrobić:
#ifdef LINUX
#define INT64 long
#elif WIN32
#define INT64 long long
#endif
2.- powinienem użyć „long long” czy „__INT64” w MinGW? i dlaczego?
Cienki chciałeś powiedzieć "długo długo", nie "podwójnie podwójnie" – drahnr
@drahnr mój zły, redagowałem post –