signed short get_endianness ([const bool verbose = false])
|
Function |
Returns the following values:
It is called by If verbose is This function has been adapted from Harbison, Samuel P., and Guy L. Steele Jr. C, A Reference Manual, pp. 163-164. This book has the clearest explanation of endianness that I've found so far. This is the C++ code: signed short
System::get_endianness(const bool verbose)
{
union {
long Long;
char Char[sizeof(long)];
} u;
u.Long = 1;
if (u.Char[0] == 1)
{
if (verbose)
cout << "Processor is little-endian."
<< endl << endl << flush;
return 0;
}
else if (u.Char[sizeof(long) - 1] == 1)
{
if (verbose)
cout << "Processor is big-endian."
<< endl << endl << flush;
return 1;
}
else
{
cerr << "ERROR! In System::get_endianness():\n"
<< "Can't determine endianness. Returning -1"
<< endl << endl << flush;
return -1;
}
}
|
bool is_big_endian ([const bool verbose = false])
|
Function |
Returns true if the processor is big-endian, otherwise false.
If verbose is true, messages are printed to standard
output.
|
bool is_little_endian ([const bool verbose = false])
|
Function |
Returns true if the processor is little-endian, otherwise false.
If verbose is true, messages are printed to standard
output.
|