/* types.c -- find out size of data types */

/* 

output on Mac OS X PPC

type      bytes
---------------
char      1
char *    4
void *    4
short int 2
int       4
long      4
long int  4
long long 8
float     4
double    8
wchar_t   4

output on AMD64

type      bytes
---------------
char        1
char *      8
void *      8
short int   2
int         4
long        8
long int    8
long long   8
float       4
double      8
long double 16
wchar_t     4

*/

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

int main(int argc, char * argv[])
{
printf("\n");
printf("type      bytes\n");
printf("---------------\n");
printf("char        %d\n", sizeof(char));
printf("char *      %d\n", sizeof(char *));
printf("void *      %d\n", sizeof(void *));
printf("short int   %d\n", sizeof(short int));
printf("int         %d\n", sizeof(int));
printf("long        %d\n", sizeof(long));
printf("long int    %d\n", sizeof(long int));
printf("long long   %d\n", sizeof(long long));
printf("float       %d\n", sizeof(float));
printf("double      %d\n", sizeof(double));
printf("long double %d\n", sizeof(long double));
printf("wchar_t     %d\n", sizeof(wchar_t));

printf("\n");
printf("format input              output\n");
printf("------------------------------------------------\n");
printf("%%d     0xffffffff           %d\n", 0xffffffff);
printf("%%u     0xffffffff           %u\n", 0xffffffff);
printf("%%d     0x7fffffff           %d\n", 0x7fffffff);
printf("%%u     0x7fffffff           %u\n", 0x7fffffff);
printf("%%d     0x80000000           %d\n", 0x80000000);
printf("%%u     0x80000000           %u\n", 0x80000000);
printf("%%d     0x7fffffffffffffffLL %d\n", 0x7fffffffffffffffLL);
printf("%%u     0x7fffffffffffffffLL %u\n", 0x7fffffffffffffffLL);
printf("%%x     0xffffffffffffffffLL %x\n", 0xffffffffffffffffLL);
printf("%%X     0x7fffffffffffffffLL %x\n", 0x7fffffffffffffffLL);
printf("%%X     0x8000000000000000LL %x\n", 0x8000000000000000LL);
printf("%%llX   0xFFFFFFFFFFFFFFFFLL %x\n", 0xFFFFFFFFFFFFFFFFLL);
printf("%%llX   0x7FFFFFFFFFFFFFFFLL %x\n", 0x7FFFFFFFFFFFFFFFLL);
printf("%%llX   0x8000000000000000LL %x\n", 0x8000000000000000LL);
#ifndef TRU64
printf("%%lld   0xffffffffffffffffLL %lld\n", 0xFFFFFFFFFFFFFFFFLL);
printf("%%llu   0xffffffffffffffffLL %llu\n", 0xFFFFFFFFFFFFFFFFLL);
printf("%%lld   0x7fffffffffffffffLL %lld\n", 0x7fffffffffffffffLL);
printf("%%llu   0x7fffffffffffffffLL %lld\n", 0x7fffffffffffffffLL);
printf("%%lld   0x8000000000000000LL %lld\n", 0x8000000000000000LL);
printf("%%llu   0x8000000000000000LL %llu\n", 0x8000000000000000LL);
#else
printf("%%ld   0xffffffffffffffffLL %ld\n", 0xFFFFFFFFFFFFFFFFLL);
printf("%%lu   0xffffffffffffffffLL %ld\n", 0xFFFFFFFFFFFFFFFFLL);
printf("%%ld   0x7fffffffffffffffLL %ld\n", 0x7FFFFFFFFFFFFFFFLL);
printf("%%lu   0x7fffffffffffffffLL %lu\n", 0x7FFFFFFFFFFFFFFFLL);
printf("%%ld   0x8000000000000000LL %ld\n", 0x8000000000000000LL);
printf("%%lu   0x8000000000000000LL %lu\n", 0x8000000000000000LL);
#endif

exit(0);
}




syntax highlighted by Code2HTML, v. 0.9.1