Ich arbeite in bestehendem C-Code, der ein paar Zeilen mit ähnlichen Anweisungen enthält wie diese:
struct collect_conn *tc = (struct collect_conn *)
((char *)c - offsetof(struct collect_conn, runicast_conn));
Die Struktur collect_conn geht folgendermaßen vor:
struct collect_conn {
struct runicast_conn runicast_conn;
struct announcement announcement;
const struct collect_callbacks *cb;
struct ctimer t;
uint16_t rtmetric;
uint8_t forwarding;
uint8_t seqno;
};
Ich verwende Eclipse CDT, und es markiert die Zeile mit einer orangefarbenen, verschnörkelten Linie als "Syntaxfehler". Ich denke, sie wird vom CDT-Indexer als solcher gekennzeichnet. Die Kompilierung (manuell in einem Terminal) ist jedoch kein Problem.
Dies ist jedoch etwas umständlich, da die Elemente in der Zeile nicht indiziert werden (daher ist der Baum der Aufrufhierarchie nicht immer korrekt, oder die Hervorhebung von Elementen, usw.).
Warum gefällt Ecipse die Linie nicht, wie sie ist?