acceptance of C standards

Pages: 12
Apr 2, 2013 at 1:15am
chrisname wrote:
The only interesting things are optional and therefore won't be supported by anything ever anyway.

I can't imagine any major vendor (Intel, IBM, HP, etc) not supporting threads or atomics, especially since some compilers already ship stdatomic.h and threads.h -- Pelles, for example, has threads, and Clang has the atomics. Complex numbers and VLAs have been there forever already, and that doesn't leave much stuff that's optional.

Catfish3 wrote:

I fell in love with VLA's, variadic macros and compound literals.

Compound literals are really nice, I agree (and named initializers too.. and of course the ability to declare variables where you need them)

I have no interest in C11, because I don't see the improvement.

Granted it's not as insanely huge as C++11, but the little bits are helpful. Static asserts (which my XLC already supports), alignof/alignas/aligned_alloc, etc. The generics have potential, too.

I think the most important core language bits are thread-aware memory model, and locale-independent Unicode support, and those aren't optional.
Last edited on Apr 2, 2013 at 1:15am
Apr 2, 2013 at 2:22am
I would actually like to know, why did they change it so you have to declare all local variables up front, rather than just as needed?
Apr 2, 2013 at 2:31am
@L B It was the other way around. C89 and earlier requires all variables up front. C99 and later allows them as-needed.
Apr 2, 2013 at 3:52am
closed account (S6k9GNh0)
Just thought I'd add that libraries that interface in "C" don't do anything special for conformance for C. Rather, all that means in most cases is the symbols used to locate functions and what not have no mangling i.e. the function int test(int LOLOLOL); would have the symbol "test" (depending on scope as well), which is also why copy naming (or namespaces) isn't allowed in C.

However, note that C doesn't actually define this in its standard. It's implicit and there are some variations (Windows has a few I know of). It's the opposite of a problem to interface in "C" because it's so simplistic to interact with from other languages.

Libraries in C, applications in C++. That's how I like it.
Last edited on Apr 2, 2013 at 3:53am
Apr 2, 2013 at 12:39pm
There's no equivalent of the stuff in stdint.h in the old standard and so everyone has to define what an integral value really is; so I like that about C99.

Variable length auto arrays. Who's idea was that? That was a big mistake in my view. Doesn't anyone care about the stack anymore?
Last edited on Apr 2, 2013 at 12:40pm
Topic archived. No new replies allowed.
Pages: 12