you are viewing a single comment's thread
view the rest of the comments
[–] 5 points 8 months ago* (1 child)

With Rust you safe 1 char, and gain needing to skip a whole line to see what type something is.

Honestly, the Rust way of doing things feels much more natural to me.

You can read it as

  1. Define a function,
  2. with the name getoffmylawn,
  3. that takes a Lawn argument named lawn,
  4. and returns a bool

Whereas the C function is read as

  1. Do something with a bool? Could be a variable, could be a function, could be a forward declaration of a function,
  2. whatever it is, it has the name getoffmylawn,
  3. there's a (, so all options are still on the table,
  4. ok, that' a function, since it takes a Lawn argument named lawn, that returns a bool
  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 8 months ago (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments