Comment

Comment by usefulcat

> int* p

I very much prefer that syntax, because the '*' is part of the type, not part of the variable name.

> You might never declare more that a single variable in a statement

    int a, *b, c, *d;
Yes, you can do that, and in fact if you want to declare multiple pointers on the same line, you are required to put a '*' in front of every pointer variable name.

Personally, I've always considered this to be a defect of the language. Would it really be so awful to have to write instead:

    // Both are of type 'int'. Pretty straightforward.
    int  a, c;
    // In my fantasy world, both of these would be of type 'pointer to int',
    // but IRL b is a pointer and d is an int. fun!
    int* b, d;
But of course that's not the language we have.

I'd be very curious to know the motivation for requiring a '*' in front of each pointer variable name, as opposed to once with the type. So far the only ones I've thought of (not mutually exclusive) are:

a) we REALLY love terseness, and

b) ooh look at this clever hack I came up with for variable declaration syntax.

parent usefulcat 1 year ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton