La librairie limits ou numeric_limits

en ajoutant cet entête, on accède à un modèle de classe: numeric_limits. C’est un moyen simple d’obtenir diverses propriétés sur les types arithmétiques.
Il y a de nombreuses fonctions disponibles mais nous nous utiliserons surtout la fonction max et la fonction min.
Vous trouverez facilement sur le web une liste exhaustive des fonctions et autres constantes liées au type à étudier, mais il est très peu probable que vous en ayez besoin (is_signed, is_integer, …)

Vous pouvez les utiliser avec un programme tel que celui-ci par exemple :

#include <Gamebuino-Meta.h>
#undef min
#undef max
#include <limits>

uint8_t var2;

void setup() {
  // put your setup code here, to run once:
  gb.begin();
  SerialUSB.begin(9600);
}

void loop() {
  while (!gb.update());
  gb.display.clear();
  gb.display.print("Minimum value for\nint8_t: ");
  gb.display.print(std::numeric_limits<int8_t>::min());
  gb.display.print(" and\nMaximum is: ");
  gb.display.println(std::numeric_limits<int8_t>::max());
  
  gb.display.print("\nMinimum value for\nuint8_t: ");
  gb.display.print(std::numeric_limits<uint8_t>::min());
  gb.display.print(" and\nMaximum is: ");
  gb.display.println(std::numeric_limits<uint8_t>::max());

  gb.display.print("\nNb bits d'un char: ");
  gb.display.println(CHAR_BIT);
}
2 Likes