VB'ler habens wirklich schwer: Casten?



  • Hallo Forum,

    bei diesem Code:

    #define BUFFER_SIZE 1000
    
    unsigned long *size = BUFFER_SIZE;
    

    Gibt es diesen Fehler:

    cannot convert from 'const int' to 'unsigned long *'

    Muß ich jetzt 1. Konstanten casten? Oder kann ich wie in VB den Typ von 1000 festlegen?

    2. Warum macht man bei "return (-1);" die Klammern? Habs mal irgendwo gelesen dann aber wieder vergessen.

    Vielen Dank

    Peter



  • peterf_x schrieb:

    2. Warum macht man bei "return (-1);" die Klammern?

    da braucht man keine klammern

    btw:

    #define BUFFER_SIZE 1000
    unsigned long size = BUFFER_SIZE;
    


  • Uh! Hab das Sternchen übersehen. Mein Fehler...

    Die Zeile "return (-1);" sehe ich aber öfters. Würde dort statt der -1 ein kompilizierter Ausdruck stehen, könnte es dann von der Abarbeitungsreihenfolge her geschehen das ein nicht ganz ausgewerteter Ausdruck zurückgegeben wird?



  • peterf_x schrieb:

    Würde dort statt der -1 ein kompilizierter Ausdruck stehen, könnte es dann von der Abarbeitungsreihenfolge her geschehen das ein nicht ganz ausgewerteter Ausdruck zurückgegeben wird?

    nö, klammern braucht man nur, wenn die rechnung ohne klammern wegen der rangfolge der operatoren falsch wäre...



  • Nein! Die Klammern um den Ausdruck bei return haben keinerlei

    Ich kann es mir nur so vorstellen, daß manche Programmierer
    die return-Anweisung als eine Funktion ansehen und deshalb
    die Klammern unnötigerweise setzen.



  • Java-Progger schrieb:

    Ich kann es mir nur so vorstellen, daß manche Programmierer
    die return-Anweisung als eine Funktion ansehen und deshalb
    die Klammern unnötigerweise setzen.

    das können aber nur programmierer sein, die nicht wissen was eine funktion überhaupt ist 😃



  • Ok. Aber irgendeinen Grund gab es. Muß wohl Ästhetik gewesen sein 😉



  • peterf_x schrieb:

    Ok. Aber irgendeinen Grund gab es. Muß wohl Ästhetik gewesen sein 😉


    aber meines geschmackes ist auch

    return (-1);
    

    vom aussehen besser als

    return -1;
    


  • nebenbei bemerkt: sizeof ist ein operator, keine funktion. klammern nicht (immer) noetig. man sehe:

    struct Foo *bar = malloc(sizeof struct Foo);
    

Anmelden zum Antworten