char fifo_write(struct charFifo * ptr_fif, const char token){ if(ptr_fif->nb_token_available >= ptr_fif->buffer_size) return 0 ; //FIFO PLEINE ptr_fif->data[ptr_fif->write_index] = token ; //la donnée est écrite dans le buffer à la case write_index (ptr_fif->write_index)++; //write_index est incrémenté if( ptr_fif->write_index >= ptr_fif->buffer_size) //si il dépasse la taille du buffer, il est remis à 0, cela remplace l'opérateur modulo ptr_fif->write_index = 0 ; ptr_fif->nb_token_available++; //il y a une donnée de plus disponible dans la FIFO return 1; //OK }