Larry Rosenman writes:
 > * Tom Lane <[EMAIL PROTECTED]> [010319 18:58]:
 > > However, if the C99 spec has such a concept, they didn't use that name
 > > for it ...
 > My C99 compiler (SCO, UDK FS 7.1.1b), defines the following:
 > Predefined names
 > 
 > The following identifiers are predefined as object-like macros: 
 > 
 > 
 > __LINE__
 >     The current line number as a decimal constant. 
 > 
 > __FILE__
 >     A string literal representing the name of the file being compiled. 
 > 
 > __DATE__
 >     The date of compilation as a string literal in the form ``Mmm dd
 > yyyy.'' 
 > 
 > __TIME__
 >     The time of compilation, as a string literal in the form
 > ``hh:mm:ss.'' 
 > 
 > __STDC__
 >     The constant 1 under compilation mode -Xc, otherwise 0. 
 > 
 > __USLC__
 >     A positive integer constant; its definition signifies a USL C
 > compilation system. 
 > 
 > Nothing for function that I can find.

It is called __func__ in C99 but it is not an object-like macro.  The
difference is that it behaves as if it were declared thus.

    static const char __func__[] = "function-name";

Those other identifiers can be used in this sort of way.

    printf("Error in " __FILE__ " at line " __LINE__ "\n");

But you've got to do something like this for __func__.

    printf("Error in %s\n", __func__);

-- 
Pete Forman                 -./\.- Disclaimer: This post is originated
WesternGeco                   -./\.-  by myself and does not represent
[EMAIL PROTECTED]     -./\.-  opinion of Schlumberger, Baker
http://www.crosswinds.net/~petef  -./\.-  Hughes or their divisions.

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to