Skip to content
Snippets Groups Projects
Select Git revision
  • e654527994b62d5b9cac2e9161c5814bca6f7db4
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

Dockerfile.dev

Blame
  • fifo-1.c 1.10 KiB
    #include <stdio.h>
    #include <stdlib.h>
    
    #define FIFO_SIZE 42
    
    int fifo[FIFO_SIZE];
    int fifo_pointer = 0;
    
    void fatal_error (char *msg)
    {
      fprintf (stderr, "%s\n", msg);
      exit (1);
    }
    
    void push (int x)
    {
      if (fifo_pointer < 0 || fifo_pointer >= FIFO_SIZE)
        fatal_error ("fifo overflow");
      else
        fifo[fifo_pointer++] = x;
    }
    
    int pop (void)
    {
      if (fifo_pointer < 1 || fifo_pointer > FIFO_SIZE)
        {
          fatal_error ("fifo underflow");
          return 0;
        }
      else
        return fifo[--fifo_pointer];
    }
    
    void dump (void)
    {
      if (fifo_pointer < 0)
        fatal_error ("fifo underflow");
      else if (fifo_pointer >= FIFO_SIZE)
        fatal_error ("fifo overflow");
      else if (fifo_pointer == 0)
        printf ("fifo is empty\n");
      else
        {
          printf ("fifo:");
          for (int i = 0; i < fifo_pointer; i++)
            printf (" %d", fifo[i]);
          printf ("\n");
        }
    }
    
    int main (void)
    {
      dump ();
      push (7);
      dump ();
      push (13);
      dump ();
      push (42);
      dump ();
      printf ("%d\n", pop ());  /* 42 */
      dump ();
      printf ("%d\n", pop ());  /* 13 */
      dump ();
      printf ("%d\n", pop ());  /*  7 */
      dump ();
      return 0;
    }