1. 16
  1. 12


    pragma GCC

    I hope we won’t still be using both gcc and compiler-specific pragmas in the 22nd century. Also,

    s8 s16 s32 s64 u8 u16 u32 u64

    is in my opinion a better way to denote signed and unsigned integers, as

    i8 i16 i32 i64

    is in my opinion unclear.

    1. 12

      Why is address defined as *? It doesn’t make anything clearer and just adds a lot of line noise. That’s just ugly for things like char address address x; and the like.

      And defining a string as a char *? That’s a great way to have someone who doesn’t know what they’re doing write a whole lot of bad code assuming that c “strings” work the same way strings work in other languages. C strings must be understood at a low level.

      Those capitalized function names are making me cringe too.

      Ugg, and I still don’t get the point of auto’s in C. I use them in C++ to get around using disgustingly long iterator types, but that’s more because the language sucks. I see no reason to use them in C except to add to the confusion of what’s going on.

      I’m not against shorter type names, but I agree with FRIGN, that s8 is clearer than i8.

      1. 10

        int x = 4 address 6;

        1. 5

          There is no way C will get to 2100 and be 2 spaces instead of an 8 character tab.

          1. 3

            Oh gawd! MORTRAN rides again.

            Please don’t.

            Seriously, if you think C needs a bit of refresh, you right.

            It’s call D, and it really quite nice.

            But layers of macro lipstick on old pigs? Ja. Been there, done that. MORTRAN was a prime example.

            Just don’t.


            1. 1

              I never got the hang of D. C has as its greatest advantage (to me, at least) that I can fit the whole language in my head at once. D seems…big.

              1. 1

                C is two languages C and C preprocessor.

                D at least unifies both as “There is only one language, D which is like a friendlier and more powerful C, but if you want to evaluate this chunk of D at compile time, and everything is known at compile time, you can”.

                And oh yes, since the compiler already knows a huge amount about your code, it at least provides a way of querying and acting on that information. And it just looks like an accessor on the type.

                This unification is a massive simplification compared to say C++.