!!!C Data Type Sizes

!Done on current systems in 2015.

| ||MSOFT 32||MSOFT 64||MSOFT 64 Cygwin||Linux 32||Linux 64||Mac OS/X
||char|1|1|1|1|1|1
||short|2|2|2|2|2|2
||int|4|4|4|4|4|4
||long|4|4|8|4|8|8
||long long|8|8|8|8|8|8
||float|4|4|4|4|4|4
||double|8|8|8|8|8|8
||char*|4|8|8|4|8|8

!!Program Used

{{{
#include <stdio.h>

#define PS(x)	printf("sizeof(" #x ") = %d\n", (int)sizeof(x))

main()
{
	PS(char);
	PS(short);
	PS(int);
	PS(long);
	PS(long long);
	PS(float);
	PS(double);
	PS(char *);
	return 0;
}
}}}

! int to pointer code

{{{
/*  _M_X64 = predefined macro for 64 bit Microsoft C  */

/* an int that is the same size as a pointer */
#ifndef INT_PTR
#ifndef INT_PTR
#ifdef _M_X64
typedef long long INT_PTR;
#else
typedef long INT_PTR;
#endif
#endif
}}}