Zitat von cds
Beitrag anzeigen
Da gibt es nichts zu deuten oder erraten oder sonstwie. Sowas nennt man implizite Deklaration. Das macht der eibPC auf der Hauptebene so. Nur kann er es nicht in tieferen Ebenen.
Das könnte man aber völlig gleichwertig genauso auf den tieferen Ebenen auch umsetzen, OHNE PROBLEME zu erzeugen, denn ALLE MÜSSEN auch dann GLEICH sein.
Verstehst du aber nicht, denn du glaubst irgendwie, dass der Compiler das nicht sehen kann, weil es sich hinter einem if versteckt?
Probier es doch einfach aus: Deklariere eine Variable (richtig) und verwende sie in einem if-statement mit einem anderen Typ. Die Abfragebedingung darfst du gerne auf FALSE setzen, damit der Code sicher nie durchlaufen wird. Compilieren und tataaaaa, der Compiler hat es gemerkt. Wieso nur?
Hier jetzt einfach die Krücke zu nehmen, und zu definieren das das textuell erste Auftreten einer Zuweisung verwendet wird macht nix besser, denn die resultierend Fehlermeldung würde dann zwar die erste Verwendung mit anderem Typ anzeigen.
Das würde einer eindeutigen Fehlermeldung auch nicht helfen, denn niemand sagt das die textuell erste Verwendung richtig ist.
Das würde einer eindeutigen Fehlermeldung auch nicht helfen, denn niemand sagt das die textuell erste Verwendung richtig ist.
Der einzige Unterschied ist die deterministische Festlegung des Typs, und die ist eben nur an einer Codestelle gegeben die auch garantiert durchlaufen wird - also nichts was an eine Bedingung geknüpft ist.
Glaube ich nicht. Die Sprache des EibPC ist zweifelsohne darauf getrimmt möglichst einfach zu sein, es bleibt aber eine Programmiersprache. Wer EibPC programmieren kann, der kommt auch mit VisualBasic klar.
[..]
Die hier sog. "Lokalen Variablen" existieren somit also in Wirklichkeit global - nur sorgt der Preprocessor dafür das die als "Macro local" markierten Variablen wirklich nur an einer Stelle verwendet werden - durch das Generieren von unterschiedlichen globalen Namen.
[..]
Die hier sog. "Lokalen Variablen" existieren somit also in Wirklichkeit global - nur sorgt der Preprocessor dafür das die als "Macro local" markierten Variablen wirklich nur an einer Stelle verwendet werden - durch das Generieren von unterschiedlichen globalen Namen.
Nun, gerade Matlab analysiert gar nix, sondern verwendet intern immer ein f32 - außer es ist explizit etwas anderes deklariert.
Macht dort ja auch nix - Speicher ist da ja kein Problem.
Macht dort ja auch nix - Speicher ist da ja kein Problem.
DAS ist allerdings richtig. Wie ich schon sagte: Das ist kein Compilerproblem, sondern ein Dokumentationsproblem.
Kommentar