Besten Programmierer der Welt



  • scrub schrieb:

    hmm.. auto legt die variable auf dem stack an. irgendwann muß es also mal so gewesen sein, daß uu variablen irgendwo anders (heap, register) abgelegt wurden. die beste lösng wäre aber für heute, dieses schlüsselwort mit dem nächsten standard zu verschrotten.

    Noch eine Spekulation, diesmal etwas fundierter: In B (Vorgängersprache von C) gab es keine Datentypen, bzw. keine starke Typisierung. Alle Variablen waren 36 Bit große Worte, in denen entweder ein Zeiger, 4 Zeichen oder eine Ganzzahl gespeichert wurde. Über die darauf angewandten Operationen musste der Programmierer selbst aufpassen. Es war beispielsweise möglich, eine Variable mit einem char (= 4 Zeichen) zu initialisieren, dann mit 42 zu multiplizieren, und dann zu dereferenzieren.
    Es gab AFAIR dieselben Speicherklassen wie in C (auto, static, register, extern), und deklariert hat man das so:

    auto a;
    

    Würde man die Speicherklasse weglassen, würde die Anweisung nicht als Deklaration erkannt werden. In C gab es dann endlich auch Typen, so dass dieser syntaktische Zwang wegfiel. Irgendwann hat man sich dann entschlossen, die Speicherklasse auto zum Standard und das Schlüsselwort auto optional zu machen.



  • Wegen der zusätzlichen Bedeutung von 'auto': steht doch alles in n1607.


Anmelden zum Antworten