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