3 ms·
I have a couple of problems with their analysis of C. There's no typed macros There are inlined functions... While the type system of C is basically size bas
by alexchamberlain 15y ago
I have a couple of problems with their analysis of C.
There's no typed macros
There are inlined functions...
While the type system of C is basically size based, a lot of types have an ambiguous size (int for example)
Use stdint.h definitions.
Having said that, I would like namespaces in C!
- cmdkeen 15y agoBut they've identified this as for systems based programming where you don't have any guarantee of stdint.h holding true (POSIX compliance). Their implementation is much more flexible. Albeit slightly reinventing the wheel.
- alexchamberlain 15y agoI can see what you mean, but stdint.h is just a bunch of typedefs stardardising the naming scheme. It doesn't take much work to sort it out.
- simias 15y agoIndeed, linux uses u32 and friends for instance. It's really not much of a problem in practice (kernels are by definition very hardware dependent anyway...)
- cube13 15y agoIf you're doing systems level programming, you shouldn't be counting on anything being portable anyway. Reimplementing it is worthless for projects are on a single OS. If you're implementing the OS, then these decisions need to be made anyway, independent of the language. You should be coding to(or with) the OS you're working on. If you're doing multiplatform stuff, then #defines with a naming scheme work, and are already the standard practice.
- simias 15y agoIndeed, however this first blog post doesn't tell us much about the language itself. The couple examples seem a bit... anecdotal. I'd also like to point out that setting individual bits in an integer is not usually atomic. So the "syntactic sugar" here could be pretty error-prone (and I can't say it was very high on my list of "features I wish C had").