c - Passing enum variable to a function -


hi have function below.

void turnright(enum direction heading, int x, int y){  if(y<=49 && heading==toright){     heading=todown;     x=x+1;  } else if(x<=49 && heading==todown){     heading=toleft;     y=y-1; } else if(x>0 && heading==toleft){     heading=toup;     x=x-1; } else if(y<=49&&heading==toup){     heading=toright;     y=y+1; }  else      printf("can not turn right! boundary alert!");  }//end function 

i declared enum in main as:

enum direction {todown, toup, toright, toleft}; static enum direction heading; heading=toright; 

and calling function main

turnright(heading, x, y); 

and above added prototype as:

  void turnright(enum direction heading, int x, int y); 

but compiler spits below errors over:

error c2065: 'todown' : undeclared identifier error c2065: 'toup' : undeclared identifier error c2065: 'toleft' : undeclared identifier error c2065: 'toright' : undeclared identifier 

can tell me doing wrong?

i declared enum in main

you need declare enum direction in file included in translation units use enum, not in main. example, can define in direction.h (don't forget add inclusion guards), , include in both main , turn-processing source files:

direction.h

#ifndef direction_h #define direction_h  enum direction {todown, toup, toright, toleft};  #endif 

now add #include "direction.h" main , other files using enum make sources compile correctly.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -