This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: naive GDB programming style questions
- From: Andrew Cagney <ac131313 at ges dot redhat dot com>
- To: David Carlton <carlton at math dot stanford dot edu>
- Cc: gdb <gdb at sources dot redhat dot com>
- Date: Mon, 09 Sep 2002 21:45:54 -0400
- Subject: Re: naive GDB programming style questions
- References: <ro1u1kyah7d.fsf@jackfruit.Stanford.EDU>
1) It seems to me that some parts of GDB's source use NULL while other
parts use 0. Is one or the other of these generally preferred?
2) Am I correct in observing that GDB frowns on code like the
following:
char *p = calculate_p ();
if (!p)
p_is_zero ();
I'll assume that you ment ``p_is_null()''.
preferring this instead?
char *p = calculate_p ();
if (p == NULL)
p_is_zero ();
Does it matter that p in a pointer rather than an integer, or that
the code is testing for zeroness rather than nonzeroness?
If you've a copy of the ISO C and C++ manuals, have a look at what they
have to say about ``NULL'' pointers. It's weird.
Anyway, for GDB, ``p == NULL'' is recommended to make it clear that the
pointer is being tested and not the underlying value.
3) Is it possible to get CC Mode to indent in the way that GDB seems
to prefer? I'm having a hard time getting structs to be indented
as follows:
struct foo
{
int mem;
};
Just use:
struct foo
{
int mem;
};
which is what is output by gdb_indent.sh and emacs. The strange
indentation that you've encountered dates back to an earlier version of
indent.
Must get around to sending the FSF coding standards group a patch that
documents this (it was agreed to in principle some time ago).
without screwing up my preferred indentation when doing non-GDB
programming, namely
struct foo {
int mem;
};
Of course, I can write functions to toggle between the two; but
given that both styles seem to be able to coexist for enums, maybe
it's possible to get them to coexist for enums. (I'm certainly no
CC Mode expert...)
Andrew