Suche IDE für C, welche "Live-Syntaxüberprüfung" behinhaltet (wie Eclipse für Java)

Jack159

Lieutenant
Registriert
Dez. 2011
Beiträge
766
Hi,

Wenn ich Java in Eclipse programmiere, dann überprüft Eclipse ja bereits meinen geschriebenen Code, bevor ich ihn überhaupt compiliere. Würde ich also z.B. in Java sowas wie:

String a = 5;

schreiben, dann wird mir Eclipse direkt einen Fehler anzeigen und dies rot unterstreichen, dass ich dem String keinen String zugewiesen habe.

Bei C (in Codeblocks) habe ich diese Funktion noch nicht endeckt. Dort würde er mir erstmal nichts fehlerhaftes anzeigen, sondern erst einen Fehler in der Konsole ausgeben, sobald ich compiliere.

Gibt es für C eine IDE welches dieses Feature bietet? Und wie nennt man dieses Feature eigentlich?
 
Das Feature nennt sich in Visual Studio IntelliSense und unterstützt kein C.
 
antred schrieb:
Und funktioniert auch für C++ nur Dienstags, an Wochenenden oder bei der richtigen Mondphase.

Schon zum Kotzen, dass man für Microsoft nur noch Kunde dritter Klasse ist, wenn man sich nicht von .NET vereinnahmen lässt. Und dabei hieß es mal Developers Developers Developers.
 
Mit Templates magst du Recht haben. Die sorgen ja dafür, dass die C++-Syntax generell nicht entscheidbar ist. Aber der Präprozessor? Das ist doch nur automatisiertes Copy/Paste. :(
 
Hancock schrieb:
Aber es ist eben für C/C++ auch deutlich schwerer als für Java, so ne Analyse zu schreiben. (Templates und Präprozessor mal als Hinweis.)
Wenigstens versucht es VS.

Da ist natürlich was dran, aber es ärgert mich trotzdem, daß Intellisense auch in der 6. von mir genutzten VS-Inkarnation (VS 2012) immer noch die Weiße Flagge hißt, sobald mal ein paar Header mit komplexeren Konstrukten eingezogen werden. Man sollte meinen, nach fast anderthalb Jahrzehnten Entwicklungsgeschichte sollte Microsoft es doch irgendwann mal hinbekommen.
 
Was ich an C++ auch liebe(hasse), dies betrifft aber auch den GNU Compiler, man vergisst irgendwo eine ein Semikolon oder eine Klammer und bekommt vom Compiler gefühlte 10.000 Fehler.
Welche sich ALLE aber auf Dateien beziehen, mit denen man gar nichts zu tun hat.
Aber zum eigentlich Problem, das vergessene Semikolon oder die Klammer gibt es keinen Hinweis, das darf man trotzdem selber suchen! :D
 
Sowas gibt es nicht für C, weil man eben richtig kompilieren muss und keinen Interpreter hat der im Hintergrund lungert. Der Präprozessor grast auch erst mal den Code ab, ersetzt Sachen und dann wird kompiliert - und erst danach weiß man was Sache ist.

Das Beste ist Eclipse+CDT tools + Valgrind + GDB unter Linux. GBD+Valgrind musst erst mal unter Linux installieren, für Valgrind dann noch mal das Eclipse Plugin. Windows ist eine feindliche Umgebung für jeden C/C++/C Objective Entwickler.

GDB = Debugger, ist aus Eclipse zu bedienen wie bei Java.
Valgrind = Memory Leak tool, das zeigt dir alles an wo Speicher reserviert aber nicht freigegeben wurde (malloc etc.)
CDT = Eclpise plugin für C Funktionalität
 
Zuletzt bearbeitet:
Der Leak-checker ist zwar das prominenteste Feature von Valgrind, aber nicht das einzige.
Der prüft auch auf uninitialisierten Speicher und Pufferüberläufe undundund. Allgemein wie
ich finde ein sehr empfehlenswertes Tool. Und das gibt es natürlich nicht für Windows. :/

Visual Studio kann übrigens aus auf nicht freigegebenen Speicher testen. Das ist aber meiner
Meinung nach sehr umständlich umgesetzt.

Lordfritte: Es geht in diesem Thread zwar um C, weshalb ich dir fast ein Thema verfehlt an
den Kopf werfen möchte, aber das "Problem" besteht nunmal auch bei C. Und nicht nur bei
GCC. Denn der Entwickler möchte ja, dass ihm nicht nur der allerallererste Fehler gemeldet
wird, der das Kompilieren verhindert, sondern möglichst viele, damit man sie alle auf einmal
korrigieren kann und der nächste Bau dann fehlerfrei durchläuft. Da das Semikolon in C aber
anders als du hier den Eindruck erwecken willst nicht nur Kosmetik ist, sondern eine Bedeu-
tung hat, bewirkt das Weglassen eines benötigten Semikolons, dass der folgende Code
dann aber oft auch nicht mehr korrekt ist und dann als fehlerhaft gemeldet wird.

Da Menschen aber im Gegensatz zu Compilern häufig eine gewisse Intelligenz besitzen,
halte ich es für sinnvoller, dem Entwickler zuzumuten, dass er erkennen kann, welche Folge-
fehler durch das Korrigieren eines früheren Fehlers gleich mitkorrigiert werden, statt ihm
nur einen Fehler zu melden und ihn jedes Mal neu kompilieren zu lassen. Ein Compiler, der
so arbeitet, würde wohl kaum von jemandem benutzt werden.
 
asdfman schrieb:
Da Menschen aber im Gegensatz zu Compilern häufig eine gewisse Intelligenz besitzen,
halte ich es für sinnvoller, dem Entwickler zuzumuten, dass er erkennen kann, welche Folge-
fehler durch das Korrigieren eines früheren Fehlers gleich mitkorrigiert werden, statt ihm
nur einen Fehler zu melden und ihn jedes Mal neu kompilieren zu lassen.

Gefällt mir, das häufig. :D
 
Zurück
Oben