Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Surely it would still mirror use if the operators were applied to the type, rather than the identifier?

The "type" is actually a list of storage class specifiers (static, extern, auto, register, typedef, _Thread_local), type qualifiers (const, volatile, restrict) and type specifiers (int, char, float, double, signed, unsigned, long, short, void). Imagine the soup of keywords that would have to be at the deepest level of the expression:

    static const volatile unsigned char *arr[X];
    // vs
    *static const volatile unsigned char[X] arr;


static, const, and volatile modify the variable itself, not what values it's legal for it to contain. So the outcome should be:

    static const volatile *unsigned char[X] arr;
Or, because signedness should be a property of the type, not an arbitrary modifier:

    static const volatile *char[X] arr;




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: