Style tibits: char *pointer; // how we declare pointers char *function(); // etc char* pointer; // No good. char * pointer; // no good /* * VERY important single-line comments look like this. */ func() // After a function they look like this if () // or here Kernel include files come first; normally, you'll need OR , but not both! includes , and it's okay to depend on that. Macros are capitalized, parenthesized, and should avoid side-effects. If they are an inline expansion of a function, the function is defined all in lowercase, the macro has the same name all in uppercase. If the macro needs more than a single line, use braces. Right-justify the backslash-es, it makes it easier to read. Prefer inline functions to Macros. Prefer const to #define's Enum types are capitalized. enum enumtype { ONE, TWO } et; Variable Declarations are: int a = 0, b = 0, c = 0; not: int a; int b; int c; a = 0; b = 0; c = 0; When declaring variables in structures, declare them sorted by use, then by size, and then by alphabetical order. The first category normally doesn't apply, but there are exceptions. Use initializers in classes. /* * All major routines should have a comment briefly describing what * they do. The comment before the "main" routine should describe * what the program does && its parameters. * int argc = number of command line parameters * char *argv[] = actual parameters */ int main(int argc, char *argv[]) I've broken this, but.. I'm going to fix eventually. if () not if() If theres 1 condition after an if statement or such, no brackets. This is the bracket style of choice. for () { /* statements.... */ } Use C++ Style casts. static_cast(variable); reinterpret_cast<>(); const_cast<>(); Use them correctly. Reinterpret_cast's and const_cast's tend to be a sign of bad design. Avoid them. Be careful not to overload any buffers. strncpy, snprintf (It's standard as of C99) Let's just try and be posix, and not go overboard for odd platiorms. Keep encapsulation in mind. Effective C++ / More Effective C++ && The C++ Programming Language guide you well here. Don't let some of my laziness affect you. I run the code through xemacs bsd-style and then remove tabs (make them 8 spaces) with M-x replace-regexp That's all ;-)