Using C Standard Variable Types

This can be essential if using a 32bit Arduino and needing a 16bit varaible or for any code which needs to be sure what size and int variable is


#include <stdint.h>

bool

boolean

char

-128 to 127

byte

0 to 255

short

unsigned short

int

unsigned int

long

unsigned long

long long

unsigned long long

float

double

int8_t

-128 to 127

uint8_t

0 to 255

int16_t

-32,768 to 32,767

uint16_t

0 to 65,535

int32_t

-2,147,483,648 to 2,147,483,647

uint32_t

0 to 4,294,967,295

int64_t

−9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

uint64_t

0 to 18,446,744,073,709,551,615

Handy Typedefs To Use


#include <stdint.h>
typedef bool BOOL;
typedef uint8_t BYTE;
typedef int8_t INT8;
typedef uint8_t UNINT8;
typedef int16_t INT16;
typedef uint16_t UINT16;
typedef int32_t INT32;
typedef uint32_t UNINT32;
typedef int64_t INT64;
typedef uint64_t UINT64;

 

Display Memory Size Of All C Types


#include <stdint.h>

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("sizeof(byte)=");
  Serial.println(sizeof(byte));
  Serial.println();
  
  Serial.print("sizeof(char)=");
  Serial.println(sizeof(char));
  Serial.println();
  
  Serial.print("sizeof(short)=");
  Serial.println(sizeof(short));
  Serial.println();
  
  Serial.print("sizeof(int)=");
  Serial.println(sizeof(int));
  Serial.println();
  
  Serial.print("sizeof(long)=");
  Serial.println(sizeof(long));
  Serial.println();
  
  Serial.print("sizeof(long long)=");
  Serial.println(sizeof(long long));
  Serial.println();
  
  Serial.print("sizeof(bool)=");
  Serial.println(sizeof(bool));
  Serial.println();
  
  Serial.print("sizeof(boolean)=");
  Serial.println(sizeof(boolean));
  Serial.println();
  
  Serial.print("sizeof(float)=");
  Serial.println(sizeof(float));
  Serial.println();
  
  Serial.print("sizeof(double)=");
  Serial.println(sizeof(double));
  Serial.println();
  
  Serial.print("sizeof(int8_t)=");
  Serial.println(sizeof(int8_t));
  Serial.println();
  
  Serial.print("sizeof(int16_t)=");
  Serial.println(sizeof(int16_t));
  Serial.println();
  
  Serial.print("sizeof(int32_t)=");
  Serial.println(sizeof(int32_t));
  Serial.println();
  
  Serial.print("sizeof(int64_t)=");
  Serial.println(sizeof(int64_t));
  Serial.println();
  
  Serial.print("sizeof(uint8_t)=");
  Serial.println(sizeof(uint8_t));
  Serial.println();
  
  Serial.print("sizeof(uint16_t)=");
  Serial.println(sizeof(uint16_t));
  Serial.println();
  
  Serial.print("sizeof(uint32_t)=");
  Serial.println(sizeof(uint32_t));
  Serial.println();
  
  Serial.print("sizeof(uint64_t)=");
  Serial.println(sizeof(uint64_t));
  Serial.println();
  
  Serial.print("sizeof(char*)=");
  Serial.println(sizeof(char*));
  Serial.println();
  
  Serial.print("sizeof(int*)=");
  Serial.println(sizeof(int*));
  Serial.println();
  
  Serial.print("sizeof(long*)=");
  Serial.println(sizeof(long*));
  Serial.println();
  
  Serial.print("sizeof(float*)=");
  Serial.println(sizeof(float*));
  Serial.println();
  
  Serial.print("sizeof(double*)=");
  Serial.println(sizeof(double*));
  Serial.println();
  
  Serial.print("sizeof(void*)=");
  Serial.println(sizeof(void*));
  Serial.println();
  
  while (1)
    delay(10000);
}

 

USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.

Comments

  1. Tom Van Loon

    6 years ago

    Thanks for this reference table

Leave a Reply to Tom Van Loon Cancel reply

Your email address will not be published. Required fields are marked *