Dirty Oerti hat geschrieben:So ganz verstehe ich deinen Aufbau nicht ganz

Ich erkenne den Sinn dahinter nicht so wirklich.
Das liegt vermutlich daran, dass Du in menschlicher Sprache denkst und die menschliche Sprache unterscheidet einige Dinge nicht so deutlich, wie es eine Programmiersprache tut.
Das Ei ist ein Ei.
Für einen Menschen ist das tivial, dahinter steckt allerdings eine Information, die man dem Satz erstmal so nicht ansieht. Das erste "Das Ei" ist nämlich etwas ganz anderes als das zweite "ein Ei". Das erste "Ei" in dem Satz kannst Du essen, das zweite "Ei" aber nicht. Dieser Satz enthält eine Klassifizierung eines konkreten Objektes.
Das erste Ei ist nämlich eine Instanz von einem Ei, während das zweite Ei die Objektklassifizierung (==Datentyp) darstellt.
In C/C++ ist das folgendes:
Deutlicher wird es, wenn die Aussage nicht ganz so trivial ist, sondern eine Unterscheidung zu einer abstrakten Oberklasse/Datentyp darstellt:
Das Ei ist ein Nahrungsmittel.
Kein Rezept arbeitet mit abstrakten Datentypen: Nehmen Sie ein Nahrungmittel, hauen es in die Pfanne und rühren um. Nach 5 Minuten ist ihr Rührnahrungsmittel fertig - guten Appetit.
Dirty Oerti hat geschrieben:Static und Co würde ich nachdem wie ich verstehe, wie du das unterteilen willst in Var lassen und die roten Links in Type dazu dann rausnehmen. Es sind ja spezielle Variablendefinitionen.
'static' hat ein Alleinstellungsmerkmal, daher verstehe ich "und co" nicht.
Static ist ein Attribut, dass weder den Datentyp, noch die Existenz der Variablen betrifft und daher eigentlich nicht nach c:type passt. In c:var hat es seine Berechtigung ebenso wie in c:func. static ist ein Attribut, dass Einfluss auf die Position im Speicher, bzw. die Zugreifbarkeit macht und daher würde ich es hier fast eine c:attr bevorzugen, die später für C++ mit public, protected und private aufgefüllt wird.