5 ms·
This is exactly what I wanted to learn. I really wanted to 'see' C in action at lowest level. This aspect of programming is what I am curious about. But I neve
by mayankkaizen 7y ago
This is exactly what I wanted to learn. I really wanted to 'see' C in action at lowest level. This aspect of programming is what I am curious about.
But I never found a decent beginner friendly resources.
Anyone reading this comment, please chime in with your suggestions.
- deaddodo 7y agoIf you want to see C at it's lowest level and understand where it shines, I'd recommend the embedded and bare-metal realms. This Raspberry Pi tutorial set, for instance: https://github.com/bztsrc/raspi3-tutorial https://github.com/bztsrc/raspi3-tutorial It's also fairly popular for emulators, since it's types are orthogonal and it's low level design is well suited to designing a pseudo-machine. It's definitely being displaced in that realm by C++/Rust/Nim/etc though.
- mayankkaizen 7y agoThank you very much!!!
- s_m_t 7y agoIf I may add my two cents... I highly recommend reading through the standard library and then looking at how they are implemented in actual C. The string library is probably the most important, this is where most people mess up! If you can figure out pointers and how to actually get the size of things (sizeof(*char) doesn't get you the size of what it is pointing at... it gets you the size of a pointer which varies depending on the architecture. sizeof(myArray) doesn't give you the number of elements in an array, it gives you the number of bytes your array can hold, to get the number of elements you must do sizeof(myarray)/sizeof(myarray[0]). sizeof() is a compile-time operator, it knows nothing of runtime) you will be pretty much 99% of the way there. https://en.cppreference.com/w/c/string/byte https://en.cppreference.com/w/c/string/byte https://github.com/lattera/glibc/tree/master/string https://github.com/lattera/glibc/tree/master/string