Anfängerproblem: Initialisierung



  • MFK schrieb:

    Th69 schrieb:

    P.S. "unsigned" ist schon so in Ordnung ("int" ist ja Standard).

    Nach dem alten C-Standard vielleicht. Aber nicht in C++.

    Auch in C++ ist "unsigned" das gleiche wie "unsigned int".



  • MFK schrieb:

    Th69 schrieb:

    P.S. "unsigned" ist schon so in Ordnung ("int" ist ja Standard).

    Nach dem alten C-Standard vielleicht. Aber nicht in C++.

    Quelle?
    In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden. Prinzipiell ist damit int überflüssig, nur wer schreibt schon gern fünf Zeichen mehr 😃 . Ich würde mich wundern, wenn das in C++ nicht mehr so ist. Allein wegen der Kompatibilität.



  • Du verdrehst row und col.
    Schau dir das nochmal näher an.

    PS:
    einfacher ist es, ein array mit row*col Elementen anzulegen und damit zu arbeiten. Spart viel Arbeit und ist idR auch schneller.



  • signed schrieb:

    In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.

    Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.



  • MFK schrieb:

    signed schrieb:

    In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.

    Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.

    Das ist schwer zu glauben, wenn man bedenkt, dass C und C++ bis C89 bis auf eine Ausnahme voll kompatibel waren. Und nein, die Sache mit den Spezifizierern ist nicht diese Ausnahme.



  • MFK schrieb:

    signed schrieb:

    In C sind signed/short/long/... alles nur Spezifizierer für int und müssen nicht angegeben werden.

    Aber nur nach dem alten Standard von 1989. In C99 ist das nicht mehr erlaubt. Und in C++ war es nie erlaubt, soweit ich weiß.

    Was du meinst ist default int bei unbekannten Objekten.
    zB

    main() { return 1; }

    unsigned war aber schon immer das gleiche wie unsigned int.



  • Tachyon schrieb:

    Das ist schwer zu glauben, wenn man bedenkt, dass C und C++ bis C89 bis auf eine Ausnahme voll kompatibel waren.

    Welche eine Ausnahme meinst du?

    Implizite Konvertierbarkeit von void-Zeigern?
    Implizite Funktionsdeklarationen?
    Die Möglichkeit, Variablen überall zu deklarieren?
    Einzeilige Kommentare?

    Ohne Anspruch auf Vollständigkeit, es gab auch noch irgendwas, wo man nur mit konstanten Ausdrücken initialisieren konnte. Und ich bezweifle auch, ob C89 Digraphs kennt.



  • http://david.tribble.com/text/cdiffs.htm#C90-impl-var

    Diese Diskussion hier ist sehr strange.



  • Shade Of Mine schrieb:

    unsigned war aber schon immer das gleiche wie unsigned int.

    Stimmt, da habe ich etwas durcheinandergeworfen.


  • Mod

    MFK schrieb:

    Die Möglichkeit, Variablen überall zu deklarieren?
    Einzeilige Kommentare?

    Das sind C++ Features, die gibt es natürlich nicht in C(89). Du musst schon aufpassen wie herum die Kompatibilitat ist. Und das andere was du aufzählst sind eben ziemliche Kleinigkeiten bis auf die Konvertierung von void*.



  • SeppJ schrieb:

    Das sind C++ Features, die gibt es natürlich nicht in C(89). Du musst schon aufpassen wie herum die Kompatibilitat ist.

    Das sind auch C99-Features, darum hatte ich sie aufgezählt.

    Aber auch wenn man sich auf die Richtung C89->C++ beschränkt: Da werden durch neue Schlüsselwörter eine ganze Menge Bezeichner ungültig 😃



  • Vielen Dank für die Antworten und Ratschläge.
    Wie Th69 richtig bemerkt hat habe ich rows and cols vertauscht.


Anmelden zum Antworten