Output(c_digit.c)
Please note that even sizeof(long double) is not pre-defined!
On some machines sizeof(int)=8,but sizeof(long)=4 (sizeof(long long)=8)
Linux@iPentium (single CPU)
*****Machine: i586
sizeof(int)=4 sizeof(unsigned)=4
sizeof(long)=4 sizeof(unsigned long)=4
sizeof(long long)=8 sizeof(unsigned long long)=8
sizeof(float)=4 sizeof(double)=8
sizeof(long double)=12
*****Some operations:
(unsigned)(-1) =0xFFFFFFFF
(unsigned long long)(-1)=0xFFFFFFFFFFFFFFFF
Solaris@sparc SUNW,Ultra-Enterprise(8 CPU's SMP, 512MB RAM!)
*****Machine: sun4u
sizeof(int)=4 sizeof(unsigned)=4
sizeof(long)=4 sizeof(unsigned long)=4
sizeof(long long)=8 sizeof(unsigned long long)=8
sizeof(float)=4 sizeof(double)=8
sizeof(long double)=16
*****Some operations:
(unsigned)(-1) =0xFFFFFFFF
(unsigned long long)(-1)=0xFFFFFFFFFFFFFFFF
Source(c_digit.c)
/* cc -O5 -o c_digit -Wall c_digit.c */
#include <stdio.h>
#include <stdlib.h>
#ifdef __FreeBSD__
# define LONG_LONG "q"
#else
# define LONG_LONG "ll"
#endif
int main(void)
{
printf("*****Machine: "); fflush(stdout);
system("uname -m");
printf("sizeof(int)=%d" "\t\t" "sizeof(unsigned)=%d\n"
"sizeof(long)=%d" "\t\t" "sizeof(unsigned long)=%d\n"
"sizeof(long long)=%d" "\t" "sizeof(unsigned long long)=%d\n"
"sizeof(float)=%d" "\t\t" "sizeof(double)=%d\n"
"sizeof(long double)=%d\n",
sizeof(int), sizeof(unsigned),
sizeof(long), sizeof(unsigned long),
sizeof(long long), sizeof(unsigned long long),
sizeof(float), sizeof(double),
sizeof(long double)
);
printf("*****Some operations:\n"
"(unsigned)(-1) =0x%X\n"
"(unsigned long long)(-1)=0x%"LONG_LONG"X\n",
(unsigned)(-1),
(unsigned long long)(-1));
return 0;
}
Output(digit.cxx)
This programm prints out some information about your machine.
Output operations are done with C++ standart library.
*****Machine: i586
sizeof(int)=4 sizeof(unsigned)=4
sizeof(long)=4 sizeof(unsigned long)=4
sizeof(long long)=8 sizeof(unsigned long long)=8
sizeof(float)=4 sizeof(double)=8
sizeof(long double)=12
*****Some operations:
(unsigned)(-1) =0xffffffff
(unsigned long long)(-1)=0xffffffffffffffff
Source(digit.cxx)
// c++ -O5 -o digit -Wall digit.cxx
#include <iostream>
#include <iomanip>
using namespace std ;
#include <stdlib.h>
int main(int, char*[])
{
cout << "This programm prints out some information about your machine.\n"
"Output operations are done with C++ standart library.\n"
"\n"
"*****Machine: " << flush; // syncronize with system() stdio calls
system("uname -m");
cout << "sizeof(int)=" << sizeof(int) << "\t\t"
"sizeof(unsigned)=" << sizeof(unsigned) << endl <<
"sizeof(long)=" << sizeof(long) << "\t\t"
"sizeof(unsigned long)=" << sizeof(unsigned long) << endl <<
"sizeof(long long)=" << sizeof(long long) << "\t"
"sizeof(unsigned long long)=" <<
sizeof(unsigned long long) << endl <<
"sizeof(float)=" << sizeof(float) << "\t\t"
"sizeof(double)=" << sizeof(double) << endl <<
"sizeof(long double)=" << sizeof(long double) << endl;
cout << "*****Some operations:\n" << setiosflags(ios::showbase) << hex <<
"(unsigned)(-1) =" << (unsigned)(-1) << endl <<
"(unsigned long long)(-1)=" << (unsigned long long)(-1) << endl;
return 0;
}