Web Images Videos Maps News Shopping Google Mail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Message from discussion __FUNCTION__ ????
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Follow-up To:
Add Cc | Add Follow-up to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers that you hear
 
Lawrence Kirby  
View profile   Translate to Translated (View Original)
 More options 19 Oct 2001, 15:37
Newsgroups: comp.lang.c
From: f...@genesis.demon.co.uk (Lawrence Kirby)
Date: Fri, 19 Oct 2001 12:44:14 GMT
Local: Fri 19 Oct 2001 13:44
Subject: Re: __FUNCTION__ ????
In article <47295485.0110190255.7f389...@posting.google.com>
           sob...@eudoramail.com "Sobhan Vezzu" writes:

>Hello All,

>         I understood that __FUNCTION__ is a preprocessor macro, which
>will substitute a file name. Similar to __FILE__ and __LINE__.

The C language doesn't define anything called __FUNCTION__ although it does
define __FILE__ and __LINE__

>         1) I have written a small code, only for __FUNCTION__ it
>prints as unknown why?

Perhaps because it isn't defined?

>What is the difference between __FILE__ and
>__FUNCTION__. When I comment #ifndef __FUNCTION block it prints the
>file name.

You compiler may provide __FUNCTION__ as an extension. Most likely it
will expand to the name of the function containing it. If it isn't
in a function then it won't be able to expand to anything. The new
C standard C99 does introduce something like this but it is called
__func__ and it is *not* a macro, it acts like the name of a static
variable within that function.

>         2) Where do I get a list of all the preprocessor macros.

Any good tutorial book on C should give one.

>#include <stdio.h>
>#include <errno.h>

>#ifndef __LINE__
>#define __LINE__ 0
>#endif

>#ifndef __FILE__
>#define __FILE__ "Unknown"
>#endif

>#ifndef __FUNCTION__
>#define __FUNCTION__ "Unknown"
>#endif

>int assert(int bool, int line, char *file, char *fun)

There is a standard defined macro named assert(), this is an unwise name
to define in your code.

--
-----------------------------------------
Lawrence Kirby | f...@genesis.demon.co.uk
Wilts, England | 70734....@compuserve.com
-----------------------------------------


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message, you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google