I've been trying to get some good naming conventions going for when I use C, but so far I can't find one that I'm truly comfortable with.

The differences in the two naming conventions I use so far are basically as follows
Code:
char bBoolean;
int nCount;

typedef struct SomeStruct {
} libSomeStruct_t;

void libSomeFunction(int firstNo, int secondNo);
and...
Code:
char boolean_b;
int count_n;

typedef struct mystruct {
} lib_some_struct_t;

void lib_some_function(int first_no, int second_no);
Where 'lib' designates a prefix for the file or library, which is used for globally accessable objects so I know where it's coming from.

The first I have taken a little from all the Java I write, so it has similarities there. The second is more in line with all the *nix C code I see.
I find the advantages of the first type is that long descriptive names seem to be more natural in it. Also, since C doesn't have a boolean type, I like to pre/postfix variables that are to be treated as boolean so I know (ie. bCookieEaten); I do similar things with counter variables (ie. nCookies). I just find having the caps sprinkled in the names a little unattractive.
The second type I find I can read easier, but makes having longer descriptive names a little more awry. Also, the postfix I like to add for booleans and counters (cookie_eaten_b, cookies_n) really doesn't feel right.

I've been struggling with this for a while now; just can't get it down. I've tried writing projects with one or the other (never mixed), but neither jive just quite right.

Anyway, I'm wondering what everyone else uses, or if you all have any recommendations?