optimisation de code

Bonjour,

je voulais savoir si on peut optimiser des if/then du type :

if ( histopression[l] = 0) { liPression[m] = ‘.’; }
if ((histopression[l] > 0) && (histopression[l] < 976)) { liPression[m] = ‘L’; }
if ((histopression[l] > 975) && (histopression[l] < 986)) { liPression[m] = ‘1’; }
if ((histopression[l] > 985) && (histopression[l] < 996)) { liPression[m] = ‘2’; }
if ((histopression[l] > 995) && (histopression[l] < 1006)) { liPression[m] = ‘3’; }
if ((histopression[l] > 1005) && (histopression[l] < 1016)) { liPression[m] = ‘4’; }
if ((histopression[l] > 1015) && (histopression[l] < 1026)) { liPression[m] = ‘5’; }
if ((histopression[l] > 1025) && (histopression[l] < 1036)) { liPression[m] = ‘6’; }
if ((histopression[l] > 1035) && (histopression[l] < 1046)) { liPression[m] = ‘7’; }
if ( histopression[l] > 1045) { liPression[m] = ‘H’; }

pour économiser de la mémoire et de la place dans mon nano qui bug car saturé !!

j’ai plusieurs bouts de code du meme type et si je pouvais les réduire mon nano serait heureux

Bien sûr, avec un tableau de structures ou tu rassembles les données, et que tu parcours ensuite avec une boucle for. Ta structure devrait ressembles à ça :

struct machin {
  int mini;
  int maxi;
  char li;
};

const struct machin montruc[] = {
  0, 0, '.',
  0, 976, 'L',
  975, 986, '1',
  // etc ...
};

@+

Bonjour,

Pourquoi faire deux tests dans chaque if. Il suffit de faire les tests dans le bon ordre

  if ( histopression[l] > 1045)
    liPression[m] = 'H';
  else if (histopression[l] > 1035)
    liPression[m] = '7';
  else if (histopression[l] > 1025)
    liPression[m] = '6';
  else if (histopression[l] > 1015)
    liPression[m] = '5';
  else if (histopression[l] > 1005)
    liPression[m] = '4';
  else if (histopression[l] >  995)
    liPression[m] = '3';
  else if (histopression[l] >  985)
    liPression[m] = '2';
  else if (histopression[l] >  975)
    liPression[m] = '1';
  else if (histopression[l] >    0)
    liPression[m] = 'L';
  else
    liPression[m] = '.';

En plus c'est plus lisible

Mais la solution d'utiliser un tableau comme proposé par hbachetti est une très bonne solution