acceptance of C standards

Pages: 12
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
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?
@L B It was the other way around. C89 and earlier requires all variables up front. C99 and later allows them as-needed.
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
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
Topic archived. No new replies allowed.
Pages: 12