how to i designate the current function...?
Bruce Cran
bruce at cran.org.uk
Mon Jun 1 12:28:19 UTC 2009
On Mon, 01 Jun 2009 00:53:39 +0200
Ondřej Majerech <oxyd.oxyd at gmail.com> wrote:
> On Mon, 01 Jun 2009 00:31:40 +0200, Gary Kline <kline at thought.org>
> wrote:
>
> > I'm not sure this is std yet, but think it is available in
> > gcc. If I'm calling funtion bar(char *, char) with one of the args
> > incorrect, is there a way to have gcc name bar() in an
> > error message?
> >
>
> Are you looking for the __FUNCTION__ macro?
>
> void baz( char yes_no ) {
> if ( yes_no == 'Y' || yes_no == 'N' ) {
> // Do stuff...
> } else {
> printf( "%s: %s\n", __FUNCTION__, "I got an invalid arg" );
> }
> }
>
> AFAIK, this isn't standard C, but well supported on GCC.
__FUNCTION__ is commonly supported, but has never been standardised;
C99 defines __func__ instead. See
http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html for details.
--
Bruce Cran
More information about the freebsd-questions
mailing list