Forum: Compiler & IDEs Eclipse-Problem mit der Darstellung von Structurmembern


von Steffen Graap (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

Ich arbeite mit Eclipse und habe hier ein Problem mit der Darstellung 
der Structurmember. Ich habe folgende Structur angelegt:
1
volatile struct Bits {
2
  UINT8 bAlarm:1;                //Bit für gestartete Alarmausgabe
3
  UINT8 bSwitch:1;              //Bit gesetzt, wenn Jumper gesetzt
4
  UINT8 bSleep:1;                //Bit gesetzt , wenn max PowerDown
5
  UINT8 bLoad:1;                //Bit gesetzt wenn Akku geladen wird (Spannung größer 27V)
6
} Bits;

wenn ich jetzt die Stuckturelemente verwende, werden die Member nicht 
farblich gekennzeichent
1
{
2
vBeep (0);
3
Bits.bLoad = TRUE;
4
Bits.bSleep = FALSE;
5
}
auch sind die Members nicht bekannt, statt dessen werden Members 
angezeigt, die gar nicht mehr Bestandteil der Structur sind. (siehe 
Dateianhang)

Woran liegt das??

Gruß Steffen

von Εrnst B. (ernst)


Lesenswert?

Vielleicht kommt eclipse durcheinander, weil sowohl der Typ der Struct 
als auch die Variable von diesem Typ "Bits" heißen?

versuch mal
1
volatile struct BitsT {
2
  unsigned bAlarm:1;                //Bit für gestartete Alarmausgabe
3
  unsigned bSwitch:1;              //Bit gesetzt, wenn Jumper gesetzt
4
  unsigned bSleep:1;                //Bit gesetzt , wenn max PowerDown
5
  unsigned bLoad:1;                //Bit gesetzt wenn Akku geladen wird (Spannung größer 27V)
6
} Bits;

Und gewöhn dir typedefs wie "UINT8" ab, dafür gibts standardisierte 
Typen in der stdint.h

von Steffen Graap (Gast)


Lesenswert?

Hallo Ernst

Ursprünglich hatte die Structur keinen Namen, war also anonym. Aber auch 
hier, war das Problem. Ich habe eben mal ein Refactoring des 
Structurbezeichenrs gemacht, und danach waren die Member bekannt, und 
auch farblich gekennzeichnet. Allerdings waren immer noch die "alten" 
Member bekannt.

Die Software funktioniert auch so wie sie soll, sieht halt optisch nicht 
so schön aus, und man kann über den "." nicht auf die Structurmember 
zugreifen.

Die standarisierten Typen aus der stdint.h sind mir bekannt, da ich aber 
aus meiner alten Entwicklungsumgebung die Variante mit UINT8 kenne und 
diese auch nach einer firmeninternen Softwarerichtline vorgegeben sind, 
habe ich die typdefs aus stdint.h nochmals mit meiner Variante neu 
definiert.

Gru? Steffen

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.