#define in Eclipse

Gast #4274869
Lesenswert?

Hallo,

ich habe folgendes Problem in Eclipse. In einer Headerdatei habe ich ein 
#define definiert, dass gewisse Quellcodezeilen deaktivieren soll. Nun 
beim compilieren und linken funktioniert dies auch. Allerdings sehe ich 
in Eclipse keine Veränderungen. Die relevanten Codestellen bleiben 
trotzdem ausgegraut. Wie kann dies sein. Was müsste ich tun damit wenn 
das define definiert ist die Codestellen nicht mehr ausgegraut sind?
Gast #4275074
Lesenswert?

Wie machst Du das genau?

Hier meine Variante:

main.h:
1
#define dddd

main.c:
1
#include "main.h"
2
#ifdef dddd
3
  //code1
4
#else
5
  //code2
6
#endif

Wenn ich in der main.h das #define auskommentiere ändert sich sofort 
nach dem Speichern die Darstellung in der main.c

Es gibt noch mehr Möglichkeiten wie z.B.:
1
#if defined(dddd)
2
  //code3
3
#endif
Gast #4275363
Lesenswert?

Hallo,

auf das Beispiel vom Datum: 16.09.2015 21:11 zurückzukommen.
Das define befindet sich in einer separaten Headerdatei. In den anderen 
Headerdateien sowie C Dateien soll dieses define Einfluss haben.
Gast #4275368
Lesenswert?

Wenn ich nun das define in der main.h definiere, dann wird trotzdem in 
der main.c Datei die relevanten Stellen nicht ausgegraut.Muss ich 
eventuell in eclipse noch eine spezielle Einstellung vornehmen?
#4276374
Lesenswert?

Gleiches Problem auch in CodeBlocks, wenn das #define nicht im aktuell 
angezeigten, sondern in einem includierten Text vorhanden ist.

Das Problem hat mit Compiler/Linker nichts zu tun, da funktioniert 
alles. Es kann aber z.B. am Plug-In für die Textdarstellung liegen.

In CodeBlocks kann Hervorheben von Preprocessor-Code ein-/ausgeschaltet 
werden und separat im Dialogfenster für Syntax-Highlighting können für 
solchen Code noch Textfarben gewählt werden. Ähnliches gibt es auch in 
Eclipse für C/C++: http://help.eclipse.org/mars/index.jsp

Menüs/Knoten öffnen bzw. weiterführende Links anklicken:
C/C++ Development User Guide -Getting started -Preparing the Workbench
Im Text unter: Setting the C/C++ editor operations and appearance
Link: Editor - control the appearance of text highlighting
Gast #4276921
Lesenswert?

Hallo Rainer,

danke für deinen Post. Ich kann diese Einstellungen in eclipse nicht 
finden. Wo muss ich was genau einstellen?

Wo befindet sich "C/C++ Development User Guide"?

Wo befindet sich "Setting the C/C++ editor operations and appearance"?
Gast #4277015
Lesenswert?

Ich habe noch ein anderes Problem in eclipse festgestellt.

Wenn ich die include Dateien so in meine main.c Datei einfüge,
dann funktioniert zwar das Übersetzen aber ich sehe die Variablen und 
Methoden von der Headerdatei gestrichelt.
1
extern "C"
2
{
3
  #include  "uart.h"
4
}
5

6
int main(void);
7
uart puart;  <----- uart wird gestrichelt markiert!
8

9

10
int main(void)
11
{
12

13
}

Es muss definitiv mit den Einstellungen für eclipse zu tun haben.
#4277246
Lesenswert?

EclipseBenutzer schrieb:
> kann diese Einstellungen in eclipse nicht finden

Rainer V. schrieb:
> Eclipse für C/C++: http://help.eclipse.org/mars/index.jsp
> Menüs/Knoten öffnen ...

Das ist das Menü/Inhaltsverzeichnis auf o.g. Webseite! Ich weiß nicht, 
wo die Einstellungen in Eclipse C/C++ zu finden sind. Ich habe Eclipse 
für Java, da ist es in Menü Window\Preferences, weiter im Dialogfenster 
Preferences unter General\Appearance und dann unter "Colors and Fonts".
#4278334
Lesenswert?

Die scheinbar falsche Textdarstellung ist vllt. gar kein Fehler, sondern 
liegt daran, daß bei #ifdef-#else-#endif u. dergl. die Darstellung in 
verschied. Farben nur in demjenigen Quelltext wirksam ist, in dem auch 
das auszuwertende Symbol definiert ist. Also nicht im Fall, daß das 
Symbol in einem includierten Text definiert ist, denn dann müßte der 
Editor ständig nicht nur den Haupt-Quelltext, sondern auch sämtliche 
includierten Texte nach Definitionen und Rückdefinitionen aller Symbole 
durchsuchen. Sicher ein hoher Aufwand.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren