gcc integer sizes in Windows and Linux

Post your FreeBASIC source, examples, tips and tricks here. Please don’t post code without including an explanation.
Post Reply
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

gcc integer sizes in Windows and Linux

Post by srvaldez »

I often need to know the gcc integer sizes on Windows and Linux, here's a tiny program to help out

Code: Select all

 //
//  test-size.c
//  
//
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <inttypes.h>

#if __x86_64__

	int main()
	{
		printf("integer sizes in 64-bit %s\n\n","");
		printf("SizeOf int %llu\n",sizeof(int));
		printf("SizeOf unsigned int %llu\n",sizeof(unsigned int));
		printf("SizeOf long int %llu\n",sizeof(long int));
		printf("SizeOf unsigned long int %llu\n",sizeof(unsigned long int));
		printf("SizeOf long %llu\n",sizeof(long));
		printf("SizeOf unsigned long %llu\n",sizeof(unsigned long int));
		printf("SizeOf long long %llu\n",sizeof(long long int));
		printf("SizeOf unsigned long long %llu\n",sizeof(unsigned long long int));
		printf("SizeOf intmax_t %llu\n",sizeof(intmax_t));
		printf("SizeOf long double %llu\n",sizeof(long double));

		return 0;
	}

#else

	int main()
	{
		printf("integer sizes in 32-bit %s\n\n","");
		printf("SizeOf int %u\n",sizeof(int));
		printf("SizeOf unsigned int %u\n",sizeof(unsigned int));
		printf("SizeOf long int %u\n",sizeof(long int));
		printf("SizeOf unsigned long int %u\n",sizeof(unsigned long int));
		printf("SizeOf long %u\n",sizeof(long));
		printf("SizeOf unsigned long %u\n",sizeof(unsigned long int));
		printf("SizeOf long long %u\n",sizeof(long long int));
		printf("SizeOf unsigned long long %u\n",sizeof(unsigned long long int));
		printf("SizeOf intmax_t %u\n",sizeof(intmax_t));
		printf("SizeOf long double %u\n",sizeof(long double));

		return 0;
	}

#endif
the list
Windows 32-bit integer sizes

SizeOf int 4
SizeOf unsigned int 4
SizeOf long int 4
SizeOf unsigned long int 4
SizeOf long 4
SizeOf unsigned long 4
SizeOf long long 8
SizeOf unsigned long long 8
SizeOf intmax_t 8
SizeOf long double 12

Windows 64-bit integer sizes

SizeOf int 4
SizeOf unsigned int 4
SizeOf long int 4
SizeOf unsigned long int 4
SizeOf long 4
SizeOf unsigned long 4
SizeOf long long 8
SizeOf unsigned long long 8
SizeOf intmax_t 8
SizeOf long double 16

Linux 32-bit integer sizes

SizeOf int 4
SizeOf unsigned int 4
SizeOf long int 4
SizeOf unsigned long int 4
SizeOf long 4
SizeOf unsigned long 4
SizeOf long long 8
SizeOf unsigned long long 8
SizeOf intmax_t 8
SizeOf long double 12

Linux 64-bit integer sizes

SizeOf int 4
SizeOf unsigned int 4
SizeOf long int 8
SizeOf unsigned long int 8
SizeOf long 8
SizeOf unsigned long 8
SizeOf long long 8
SizeOf unsigned long long 8
SizeOf intmax_t 8
SizeOf long double 16
Post Reply