Forum: Mikrocontroller und Digitale Elektronik Einbinden von Header Datein / C Programm


von Greenhorn (Gast)


Lesenswert?

Hallo,

ich habe eine Frage. Kann man einen definierten Datentyp, den man in 
einer Header Datei A verwendet hat:

typedef struct
{
  ULTRASONIC_MEAS_SETTINGS_d  us_settings;
  unsigned int      us_measurement_counter_value;
  unsigned int      us_measurement_distance_value;
  bool        us_measurement_error;
}ULTRASONIC_MEAS_d;

auch in einer anderen Header Datei B verwenden?

Leider meckert mein Compiler und ich kann mir nicht wirklich erklären 
warum dies nicht gehen sollte. Ich möchte ungern mir nochmals einen 
identischen Datentyp mit anderen Namen schaffen.

Fehlermeldung:

"conflicting types of ULTRASONIC_MEAS_d..."
und "previous declaration of ULTRASONIC_MEAS_d"

Ich möchte gern Daten die einem C Modul generiert werden über mein 
Hauptmodul an einen anderes C Modul weitergeben. Doch leider 
funktioniert es nicht so wie ich möchte.

Kann mir das jemand verständlich erklären und eine Lösungsweg aufzeigen.

Ich verwende die neuste Version vom AVR Studio.

Vielen Dank.

von Timmo H. (masterfx)


Lesenswert?

Ja.
Im header vorher aber noch ein ifndef
1
#ifndef BLUBB_H_
2
#define BLUBB_H_
3
4
typedef struct
5
{
6
  ULTRASONIC_MEAS_SETTINGS_d  us_settings;
7
  unsigned int      us_measurement_counter_value;
8
  unsigned int      us_measurement_distance_value;
9
  bool        us_measurement_error;
10
}ULTRASONIC_MEAS_d;
11
12
#endif
Damit verhinderst du dass es mehrfach deklariert wird.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.