C in Maguyva: Aufrufgraphen für System- und Embedded-Code
In C ist der Aufrufgraph die Architektur. Ein Agent sollte ihn lesen, bevor er etwas ändert.
Dateiendungen
.c, .h
Maguyva unterstützt C++ mit AST, Symbolen und Graph, damit KI-Agenten Klassen, Namespaces, virtuelle Overrides und Aufrufer in großen C++-Codebasen verfolgen.
In C++ sind Namen nicht eindeutig. send kann eine freie Funktion sein, ein Member von drei Klassen und ein Override in einer vierten. Namespaces, Templates und Definitionen außerhalb der Klasse wie Socket::send in einer .cpp-Datei verteilen einen Typ auf viele Dateien. Die Textsuche liefert jeden Treffer, sagt einem Agenten aber nicht, welchen davon ein Aufruf erreicht.
Maguyva indexiert Klassen, Member und Aufrufe samt ihren Besitzern, damit ein Agent der echten Struktur folgen kann, bevor er etwas ändert.
Maguyva deckt die gängigen C++-Endungen für Quell- und Header-Dateien ab, darunter .cpp, .cc, .cxx, .hpp, .hh und .hxx. Klassen, Structs und Funktionen werden extrahiert, und eine Definition außerhalb der Klasse wie void Socket::send() wird ihrer besitzenden Klasse und ihrem Namespace zugeordnet. Virtuelle Member werden erfasst, und Template-Parameter sind Teil der Signaturen.
Die Receiver-Typisierung folgt Parametern, lokalen Deklarationen, Feldern, bereichsbasierten for-Schleifen und auto und blickt durch unique_ptr, shared_ptr und optional hindurch, sodass ein Aufruf wie conn->send() zur richtigen Klasse aufgelöst werden kann. Basisklassen-Klauseln speisen die Vererbung, und new-Ausdrücke zählen als Instanziierung.
Es gilt dieselbe Maskierung von Export- und Annotationsmakros wie bei C. Etwa 273 Namen der Standardbibliothek (std::cout, std::endl, printf und ähnliche) werden aus den Beziehungen gefiltert. Der Graph erfasst Aufrufe, Includes, Vererbung, Overrides, Instanziierung, Typreferenzen, Lese- und Schreibzugriffe sowie throw-Kanten.
Renderer::draw, und wer ruft es auf?“ (dependency_search)OrderBook::match und jeden Aufrufer.“ (find_symbol)get_task_context).h steht in den Listen der Dateiendungen von C, C++ und Objective-C, daher teilen sich diese Profile Header in gemischten C- und C++-Bäumen.text_pattern_search für Makros und die Nutzung von std::.Verbinde ein Repository über den Schnellstart und prüfe dann die Unterstützungsmatrix auf der Kompatibilitätsseite. Wenn Teile des Baums reines C sind, lies auch den C-Leitfaden.
Am besten geeignet
Agentenabläufe
Engine-Einordnung
Nützliche MCP-Einstiegspunkte
Nutz es für einen qualifizierten Namen wie `OrderBook::match`, wenn du Definition und Aufrufer brauchst.
Nutz es vor einer Signaturänderung auf einer Basisklasse oder virtuellen Methode, um Overrides und Aufrufer zu finden.
Nutz es für Prompts wie „erkläre, wie eine Marktdatennachricht die Strategie-Engine erreicht“.
Verwandte Guides
In C ist der Aufrufgraph die Architektur. Ein Agent sollte ihn lesen, bevor er etwas ändert.
Dateiendungen
.c, .h
Relevant, wenn du KI-Unterstützung in Rust willst, ohne die strukturellen Leitplanken zu verlieren, die Rust überhaupt lohnenswert machen.
Dateiendungen
.rs