• cryoistalline@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    18 hours ago

    types in C are pretty weird

    int *a can be read as

    1. *a is a int
    2. since dereferencing is a operator on pointers, a is a pointer to int

    int *a, b is read as

    1. *a and b are int
    2. so a is a pointer to int and b is a int

    bool getofmylawn(Lawn lawn)

    1. getoffmylawn(Lawn lawn) is a bool
    2. since calling is done on functions, getoffmylawn is a function that takes a Lawn and returns a bool

    And then you have function pointers

    bool (*foo(int a))(float b)

    1. (*foo(int a))(float b) is a bool
    2. *foo(int a) is a function from float to bool
    3. foo(int a) is a function pointer from float to bool
    4. foo is a function that takes a int and returns a function pointer from float to bool

    really weird in my opinion.