| ▲ | uecker a day ago | |||||||
C is a tool which requires expertise but then goes out of your way and let's you do things, and do things rather efficiently, with no overhead, and exactly how you want. If you want it to cut off your arm it will do this too. But if you want to abstract things away behind types, this can also be done too (and arguable should be done more often in C). Somebody should write a C to more modern and safe C migration book. | ||||||||
| ▲ | pornel a day ago | parent [-] | |||||||
Depends how you define "can", because you can invent your own conventions not checked by the compiler, or even make a compile-to-C language. But more directly, C barely lets you define non-NULL pointers. It doesn't have pointers that guarantee the data behind them is initialized, it doesn't have never-leaves-this-thread data types. Const merely guarantees that you can't (strongly shouldn't) mutate data, not that it definitely won't be mutated by any thread. | ||||||||
| ||||||||