int const * const p vs const int * const



  • Welche Schreibweise ist besser?

    int const * const p
    
    const int * const
    

    Gibts irgendwelche technischen Unterschiede?



  • Nein. Geschmackssache.

    Einige argumentieren für die erste Variante wegen der "Rechst-nach-Links-Lesbarkeit" des Typen.
    In der Lietaratur findet man allerdings auch oft die zweite Variante.



  • drakon schrieb:

    Einige argumentieren für die erste Variante wegen der "Rechst-nach-Links-Lesbarkeit" des Typen.

    Klappt aber auch bei der 2. Variante: p ist ein konstanter Zeiger auf einen int, der konstant ist;)



  • this->that schrieb:

    drakon schrieb:

    Einige argumentieren für die erste Variante wegen der "Rechst-nach-Links-Lesbarkeit" des Typen.

    Klappt aber auch bei der 2. Variante: p ist ein konstanter Zeiger auf einen int, der konstant ist;)

    Klar, aber es ist wesentlich besser lesbar mit der ersten Variante.
    Reflexivpronomen verwirren Programmierer nur. 😃



  • drakon schrieb:

    Reflexivpronomen verwirren Programmierer nur. 😃

    Da hast du wohl Recht.
    http://de.wikipedia.org/wiki/Reflexivpronomen



  • Michael E. schrieb:

    drakon schrieb:

    Reflexivpronomen verwirren Programmierer nur. 😃

    Da hast du wohl Recht.
    http://de.wikipedia.org/wiki/Reflexivpronomen

    *Argh*. Ich meinte Relativpronomen. 😉



  • Die zweite Variante dürfte vorzuziehen sein, da sie weitaus gebräuchlicher ist.
    Man schreibt i.d.R. auch const int x=5 und nicht etwa int const x=5.


  • Administrator

    Athar schrieb:

    Die zweite Variante dürfte vorzuziehen sein, da sie weitaus gebräuchlicher ist.
    Man schreibt i.d.R. auch const int x=5 und nicht etwa int const x=5.

    Ich schreibe regelmässig int const . Und was nun gebräuchlicher ist, dürfte ziemlich schwer zu beweisen sein.
    Ich benutze übrigens dies erste Variatne wegen der Konsistenz. Typ und const darauf angwendet. Das schreibt einem der konstante Zeiger vor.

    int const* const
    //^^^ ^^^^^
    //Typ const
    //^^^^^^^^^^ ^^^^^
    //Typ        const
    

    Ich bin auch der Meinung, dass wenn man konsequent die erste Variante durchziehen würde, es viel weniger Missverständnis geben würde. Es ist viel einfacher zu erklären, worauf sich das jeweilige const bezieht, wenn man es ausschliesslich danach schreibt. Sonst sind es eben zwei Spezialfälle und Spezialfälle sind meistens nicht leicht zu erklären oder merken. Man schreckt nur schon davor zurück, weil es ein Spezialfall ist.

    Grüssli


Anmelden zum Antworten