I discovered my C code was a lot better when I backed out all the clever metaprogramming preprocesser usage. C could be easily extended with:
1. modules
2. manifest constants
3. conditional compilation
and the preprocessor can be deprecated.
1. modules
2. manifest constants
3. conditional compilation
and the preprocessor can be deprecated.
It's wholly wrong to try to frame this as "more powerful", specially considering the fact that C already supports generic selection.
https://en.cppreference.com/w/c/language/generic
> There are plenty of them.
There really isn't, at least in the application domains where C dominates, such as embedder programming.
You'd be hard pressed to find any producrion-level tool chain for embedded development which supports anything other than C or even C++, and any decision to pick up even C++ over C for embedded development requires a lot of soul searching.