Hi zusammen,
ich habe in der header-Datei "gcode_handler.h" zwei enums definiert,
welche ich mit typedef zu den Typen "gcode_handler_type_t" und
"gcode_handler_state_t" definiere. Wenn ich diese nun in dieser
header-Daei oder in der zugehörigen C-Datei verwende, dann kann ich die
Bezeichner einwandfrei als Typen verwenden.
Nun möchte ich die Bezeichner "gcode_handler_type_t" und
"gcode_handler_state_t" aber auch in einer anderen header- und C-Datei
verwenden allerdings spuckt der Compiler dann folgendes aus:
1 | Error 6 expected ')' before 'type' H:\...\command_buffer.h 10 55
|
2 | Error 5 expected specifier-qualifier-list before 'gcode_handler_type_t' H:\...\command_buffer.h 5 5
|
Inhalt von gcode_handler.h:
1 | 1: enum gcode_handler_type_t_ {
|
2 | 2: GCODE_TYPE_IMMEDIATE,
|
3 | 3: GCODE_TYPE_SEQUENTIAL,
|
4 | 4: GCODE_TYPE_UNDEFINED
|
5 | 5: };
|
6 | 6: typedef enum gcode_handler_type_t_ gcode_handler_type_t;
|
7 | 7:
|
8 | 8: enum gcode_handler_state_t_ {
|
9 | 9: GCODE_STATE_NEW,
|
10 | 10: GCODE_STATE_RUNNING,
|
11 | 11: GCODE_STATE_STOPED,
|
12 | 12: GCODE_STATE_UNDEFINED
|
13 | 13: };
|
14 | 14: typedef enum gcode_handler_state_t_ gcode_handler_state_t;
|
15 | 15:
|
16 | 16: /* initialize*/
|
17 | 17: void gcode_handler_init();
|
18 | 18:
|
19 | 19: gcode_handler_type_t gcode_handler_classify(gcode_cmd_t *gcode_cmd);
|
Inhalt von command_buffer.h
1 | 1: #include "gcode_handler.h"
|
2 | 2: typedef struct {
|
3 | 3: uint8_t empty;
|
4 | 4: message_buffer_msg_source_t source;
|
5 | 5: gcode_handler_type_t type;
|
6 | 6: gcode_handler_state_t state;
|
7 | 7: gcode_cmd_t gcode_cmd;
|
8 | 8: } command_buffer_cmd_t;
|
9 | 9:
|
10 | 10: uint8_t command_buffer_getNext(gcode_handler_type_t type, gcode_handler_state_t state, command_buffer_cmd_t *cmd);
|
Ich verwende als Entwicklungsumgebung das AVR Studio 5 (Version 5.1.208)
mit der AvrGCC Version 5.1.0.0
Vielleicht kann mir jemand von euch bei dem Problem helfen.
Viele Grüße
Stroggi