I'm developing a software for both Windows and Linux.

But I have some problems using the function "assert()" in Linux, because __int64 is not the same thing as "long long".

Example:

/* Code for Windows (It works very well) */
unsigned __int64 n_key = b_key;
n_key ^= functionResult();
b_key = functionReturn();
assert(b_key == n_key);

/* Code for Linux (It does not work) */
unsigned long long n_key = b_key;
n_key ^= functionResult();
b_key = functionReturn();
assert(b_key == n_key); // ERROR

How can I learn more about "__int64" to understand how it works?

I need a different way, not "long long", to use 64bit integers on GCC that "assert()" accept fine parameters...

Thank you!