¿Por qué mi función non void en C no funciona? "modo" es una variable en mi programa y cuando llamo a la función "Inc (modo)" no pasa nada [cerrado]

//increment variables between high & low limits , temp variable , m high limit 
    int Inc ( unsigned char temp , unsigned char m )
    {
      temp++ ;
      if (temp == m)
      temp = 0 ; 
      return ( temp ) ;
    }
Answer

El tempparámetro es una variable localInc de la función.

Quieres esto:

 void Inc ( unsigned char *temp , unsigned char m )
 {
   (*temp)++ ;
   if ((*temp) == m)
     (*temp) = 0 ; 
 }

 ...
 mode = 1;
 Inc(&mode, 10);
 // mode is 2 now

o simplemente esto usando su función original:

 mode = 1;
 mode = Inc(mode, 10);
 // mode is 2 now

Supongo que tu código se ve así:

 mode = 1;
 Inc(mode, 10);  // calling Inc and ignoring the return value
 // mode is still 1 now