From my experience, most Computer Science students do not care about writing code from scratch. Most I know seem/seemed happy to use something premade.
I couldn't stand using someone else's code :p
That said, I use Code::Blocks. Not many people seem to talk about it, but me + Code::Blocks = happy. Oh yeah, +gcc also of course, but that can go without saying.
About your all datatypes being 32-/64-bit question...
Yes and no. For Windows. (And most Unix OS's)
You can store 8-bit values all you want on Windows, and have them act as such. The thing you must be aware of is word size.
In a 32-bit edition of Windows, 2^32 words are accesible. Each word is treated as 4 bytes, or 32 bits long. Because there are 2^32 separate addresses, and they have a 32-bit "resolution" due to 32-bit words (that is, if the numerical difference between two pointer values is 1, then they are 32 bits apart), the system must strip a whole word from memory, then just grab the first byte.
Likewise with 64-bit... but with 64-bits. Which is one of the reasons I am against 64-bit. Stripping whole words for 32-bit values is just ridiculous. There's always the argument amount a boolean value taking a whole word too in this sense!
Anyways. Code::Blocks. Check it out :) It's a slight pain for quick work unless you know/set-up some shortcuts. It allows you to work on single files of course, but like Eclipse/Netbeans, it is focused on a "Project" view.
Or use some Notepad-like program. Nothing wrong with Notepad++.