Top products from r/cprogramming

We found 20 product mentions on r/cprogramming. We ranked the 13 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top comments that mention products on r/cprogramming:

u/phao · 1 pointr/cprogramming

Before anything, I want to ask if you're really going to work with C, whose support in visual studio is really poor, or if you're going to work with C++. My question is: are you sure you'll be working with C? Isn't it C++?

I've seen a lot of people say C when they mean C++. Given how bad is the C support in visual studio, I imagine this may be your case (i.e. someone told you that you'll be working with C programming using the Visual Studio IDE).

If this is really C, then I don't have much to give you, but if you'll be working with C++, then there are some to consider.

I know there are books targeted at teaching C++ together with the Visual Studio tooling. I don't know if they're any good though.

Microsoft has its channel9 website. It has several videos covering how to use Visual Studio and also several videos on C++. Here are some of their video series which seem good:

u/ipe369 · 4 pointsr/cprogramming

This doesn't sound like 'advanced C', this just sounds like having low level knowledge of certain things. You'll probably have better luck searching for books on kernel development if you want to know about the linux kernel for example, or compiler dev for compiler dev, or machine learning for machine learning etc.

Doesn't get much simpler than C, past the basics programming better C just involves expanding your mental model of the cpu - i.e. understanding that memory isn't just RAM, but also your CPU has caches helps when optimising code.

That being said, I picked up this from the library and read the first couple chapters. Seemed quite good, and gave you a nice overview of some of the idiosyncracies of C! https://www.amazon.co.uk/d/Books/Expert-C-Programming-Peter-van-Linden/0131774298

u/BlindTreeFrog · 1 pointr/cprogramming

/u/phao has a good question, and I don't have a great resource offhand, but 2 things...

Java, Python, PHP, Javascript, and (I assume at least) Ruby are all C like, so the syntax will look familiar enough that you could probably fake your way through a lot of it while searching online for details and function syntax. Picking up the K&R book might be enough to get you hacking away at work without much trouble.

In fact, you'll probably feel like you are picking things up really quickly (as far as C/C++ goes at least) and wonder why you were so worried in hindsight. There is one huge catch though and it cannot be emphasized how huge this catch is.

Java, Python, JS, PHP, and Ruby (I'm assuming on the last three, I haven't dealt with them much) don't have pointers. OK, yeah, Java has pointers all over the place ("references") but they are hidden from you. In C/C++ you can point a variable anywhere in memory that you want and read/write from it and it might just happen to work fine, until it doesn't, and those issues can be a huge pain to find. Plus, C/C++ doesn't have garbage collection so as you allocate memory and shift it around you are responsible to clean it up when you are done with it.

On paper it doesn't sound too bad, but this would be the area I feel like I see new people to the language have the most trouble with, especially coming from Java and scripted languages. Just be sure to pay extra attention in that section in the book.


K&R Book: http://www.amazon.com/dp/0131103628

u/redditU2017a · 2 pointsr/cprogramming

That is a great question both in the literal and figurative sense - specifically, most languages have oddities when it comes to what is generically referred to as I/O handling. These originate from the fact that in spite of great advancements, converting a series of key strokes/taps on glass etc. still requires buffering and "de-bouncing" (prevention of multiple same key strokes from being read) etc.
in general, I would recommend Kernighan's book (C programming language ) as a fun guide that explain not only what the gotchas are but give solid ways to code effectively around them.

u/TraylaParks · 2 pointsr/cprogramming

This is by no means a beginner book, but it's one you might want to pick up as you progress. It is excellent ...

https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298

u/ande3577 · 1 pointr/cprogramming

Embedded.com has a decent reference: http://www.embedded.com/collections/4397931/Object-oriented-C

This book also has some good general OO design info in addition to the test info: http://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X

u/cbasschan · 1 pointr/cprogramming

In addition to this advice, I've found that people who read (and do exercises from) one of these (or one of these) are statistically unlikely to make this kind of mistake.

> xa = (double pow/SNIP/

You didn't happen to confuse the synopsis for an example when you were reading one of these, did you? "Synopsis" and "Example"... the words are so similar, right?

There should be some take-home point here... like uhh... don't stop reading and start guessing at some arbitrary point... or better yet... read; don't guess.

u/Parzeval · 1 pointr/cprogramming

Shit, sorry for not replying sooner, I just saw this response - I don't check on here very much.

Thanks for the reply, I'd given up on this thread. I'll look into those resources you mention. The target OS is Linux, so that makes things a bit simpler i guess.

Do you have any opinion on the relative merits of these 3 driver books: (I've heard the bottom one 'Essential Linux Device Drivers' is getting a bit old now (targets a fairly old kernel) but I don't know if that matters

u/jnyoike · 3 pointsr/cprogramming

You can try reading The C Programming Language by Dennis Ritchie and Brian Kernighan. I've been reading it for the past month or so and it has really helped me out a lot

u/vckd · 2 pointsr/cprogramming

If you don't have any specific questions for us here, The C Programming Language, co-authored by the creator of C, is the gold standard in books about the language.

u/PonyTailDrama · 3 pointsr/cprogramming

- Watch videos from Nptel and VU

- Solve the problems that are discussed in Nptel and VU videos using a compiler

- Solve the debug/output and exercise questions from Test Your C Skills

- Solve problems in Hackerrank.

- Data Structures on Nptel

u/ischickenafruit · 14 pointsr/cprogramming

I think it's time for you to read a text book about virtual memory and page tables. There's a lot going on under the hood.


The short answer is, every process lives in its own virtual space, which appears to the process to be the whole of system memory. For that process, the only things that exist are its own memory and the kernel parts which are mapped into it. The only way a process can see other process memory is via the kernel.


The longer answer is that the way the kernel achieves is this is through a couple of bits of hardware in particular the MMU (memory management unit) which includes the TLB (translation lookaside buffer). The TLB is a kind of cache that handles fast lookups from virtual addresses (that a process sees), to physical addresses (that the kernel sees and manages). A TLB lookup will fail if a process tries to access a virtual address that is not mapped into it. In this case, the kernel (or on x86, the MMU on behalf of the kernel) will consult a bunch of tables ("page tables") to find the mapping and load it. If the kernel can't find the memory, then your process is trying to access memory that was never allocated to it, and you get a segfault (the memory segment couldn't be found).


There's a lot to it, and a single reddit comment isn't the place to get into all the details. I'd take a look at Modern Operating Systems or any other decent text book for a full explanation.