title: gcc error: expected '=', ',', 'ASM', or '__attribute__' before 'dequeue'
body: <p>I am very new to C and could not resolve my issue looking through some of the past threads on this compile error.</p>
  
  <p>This is my code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  struct PCB{
  /*various data fields within the PCB structure*/
  /*in this implementation just ID is included*/
  int ID;
  struct PCB *next;
  struct PCB *prev;
  }typedef PCB;
  
  
  void enqueue(PCB **pntrHN, PCB **pntrTL, PCB passedPCB);
  PCB dequeue(PCB **pntrHN, PCB **pntrTL);
  void print_queue(PCB **pntrTL);
  int size_of_queue(PCB **pntrTL); 
  void clear_queue(PCB **pntrHN, PCB **pntrTL); 
  
  int main(int argc, char * argv[])
  {
  PCB **headOfQueue;
  PCB **tailOfQueue;
  PCB pcbNode;
  
  headOfQueue = malloc(sizeof(PCB*));
  tailOfQueue = malloc(sizeof(PCB*));
  *headOfQueue = 0;
  *tailOfQueue = 0;
  for(i=0; j&lt;100; j++)
  {
      PCB temp;
      temp.ID = rand()%30000+20001;
      enqueue(headOfQueue,tailOfQueue,temp);
  }
  
  print_queue(tailOfQueue);
  int size = size_of_queue(tailOfQueue);
  printf("Size of queue: %d\n", size);
  clear_queue(headOfQueue, tailOfQueue);
  size = size_of_queue(tailOfQueue);
  printf("Size of queue now: %d\n", size);
  return(0);
  }
  /*enqueue is here*/
  PCB dequeue(PCB **pntrHN, PCB **pntrTL)
  {
  PCB *tempHead; /*temp var for new head*/
  PCB returnVal;
  
  if((*pntrHN)-&gt;next !=0){
  printf("nodes next is not 0");
  exit(0);
  }
  if(*pntrHN == 0){
  printf("dequeued an empty queue");
  exit(0);
  }
  if(*pntrTL == 0){
  printf("dequeued empty queue");
  printf("head is not zero but tail is");
  exit(0);
  }
  returnVal = **pntrHN; /*get data for return*/
  
  if(*pntrHN == *pntrTL){
  *pntrTL = 0;
  tempHead = 0;
  }else{
  tempHead = (*pntrHN)-&gt;prev; /*get new head*/
  tempHead -&gt;next = 0;
  }
  free(*pntrHN); /*free old head*/ 
  *pntrHN = tempHead; /*set class attribute to new tail*/
  return returnVal;
  }
  
  void clear_queue(PCB **pntrHN, PCB **pntrTL)
  {
  PCB holder;
  if(*pntrTL != 0){
      while(*pntrHN != 0){
          (*pntrHN)-&gt;prev = *pntrHN;
          holder = dequeue(**pntrHN, **pntrTL);
      }
  }
  }
  }
  </code></pre>
  
  <p>Is my syntax alright? I really can't tell where I went wrong right now. I'm using notepad++ and gcc via ssh.</p>