Jump to content


  • Content Count

  • Joined

  • Last visited

  1. maximlee

    Use of enum variables in .h and .c

    Thank you. I am sorry for my late answer - I tried to change the code and compile it, but due to other errors couldn't do that. Anyway, I think that my problem was also related to code writing rather then enum mistakes: I was able today to compile the code. My lcd_send_string(* char) function was declared in a functions.h file as following: char *enum2str(enum IOchannel); #ifdef LCD void lcd_init(void); void lcd_send_string(char *s); #endif while LCD was defined in another definitions.h file: #define LCD LCD4 I had to comment #ifdef and #endif, and then everything compiled succesfully, including that function with enums: lcd_send_string(enum2str(haltIn)).
  2. Hi. Got stuck. I have a project with a line in variables.h: enum IOchannel {V1 = 11, I1 = 101, V2 = 12, I2 = 102}; Then I have an input.c, where I initialize all variables declared in variables.h(as extern), however, I don't use it for my enum, because I would get an error that my variables are already defined (due to include). Finally, I have another file which sends on LCD my enum variables, i.e. if it was V1 received, then you'll see "V1 = xxx" on the LCD. lcd_send_string(enum2str(haltIn)); where the function is void lcd_send_string(char *s); and so there's a function char *enum2str(enum IOchannel enumVariable) { // convert ENUM to CHAR switch (enumVariable) {case V1: return "V1"; case V2: return "V2"; case I1: return "I1"; case I2: return "I2";} } When I am trying to compile my code (GCC 4.2.4) I receive a message "argument of type "enum IOchannel" is incompatible with parameter of type "enum IOchannel"" every time I am trying to use my function. What is the correct way to declare, initialize and use my enum variable? Thanks.