// Program: limits-E.ino
/*
Determine the memory sizes and limits of datatypes
Ref: https://www.tutorialspoint.com/c_standard_library/limits_h.htm
*/
#include <limits.h>
void setup()
{
// Initialize serial and wait for port to open
Serial.begin(115200);
}
void loop()
{
int a;
float b;
double c;
Serial.print("Size of a = ");
Serial.println(sizeof(a));
Serial.print("Size of b = ");
Serial.println(sizeof(b));
Serial.print("Size of c = ");
Serial.println(sizeof(c));
Serial.print("pi = ");
Serial.println(PI, 5);
// char type
Serial.print("Size of char is ");
Serial.print(sizeof(char));
Serial.println(" bytes");
// unsigned char type
Serial.print("Size of unsigned char is ");
Serial.print(sizeof(unsigned char));
Serial.println(" bytes");
// int type
Serial.print("Size of int is ");
Serial.print(sizeof(int));
Serial.println(" bytes");
// unsigned int type
Serial.print("Size of unsigned int is ");
Serial.print(sizeof(unsigned int));
Serial.println(" bytes");
// long type
Serial.print("Size of long is ");
Serial.print(sizeof(long));
Serial.println(" bytes");
// unsigned long type
Serial.print("Size of unsigned long is ");
Serial.print(sizeof(unsigned long));
Serial.println(" bytes");
// float type
Serial.print("Size of float is ");
Serial.print(sizeof(float));
Serial.println(" bytes");
// double type
Serial.print("Size of double is ");
Serial.print(sizeof(double));
Serial.println(" bytes");
Serial.print("\nCHAR_MIN is ");
Serial.println(CHAR_MIN);
Serial.print("CHAR_MAX is ");
Serial.println(CHAR_MAX);
Serial.print("UCHAR_MAX is ");
Serial.println(UCHAR_MAX);
Serial.print("INT_MIN is ");
Serial.println(INT_MIN);
Serial.print("INT_MAX is ");
Serial.println(INT_MAX);
Serial.print("UINT_MAX is ");
Serial.println(UINT_MAX);
Serial.print("LONG_MIN is ");
Serial.println(LONG_MIN);
Serial.print("LONG_MAX is ");
Serial.println(LONG_MAX);
Serial.print("ULONG_MAX is ");
Serial.println(ULONG_MAX);
while (1); // Dynamic halt of the program
}
/*
Size of char is 1 bytes
Size of unsigned char is 1 bytes
Size of int is 4 bytes
Size of unsigned int is 4 bytes
Size of long is 4 bytes
Size of unsigned long is 4 bytes
Size of float is 4 bytes
Size of double is 8 bytes
CHAR_MIN is 0 (?)
CHAR_MAX is 255 (?)
UCHAR_MAX is 255
INT_MIN is -2147483648
INT_MAX is 2147483647
UINT_MAX is 4294967295
LONG_MIN is -2147483648
LONG_MAX is 2147483647
ULONG_MAX is 4294967295
*/