Raymond wrote:
Hello All:
I have find a function declaration like following:
------------------------------------------------
extern int _ts_callback_abort _((GTRID *, long));
------------------------------------------------
What's the meaning of this statement?
First, you need to find out what the macro _() is.
That macro has no standard meaning, so it should be available in the
included non-standard headers. Of course, we can all guess what it is:
a macro designed to make the declaration work whether the implementation
can handle prototypes or not. This sort of hack should disappear soon,
since it has been 16 years since the C standard mandated that prototypes
be supported.
So, assume that _(x) expands to x
We now have
extern int _ts_callback_abort (GTRID *, long);
This is the declaration for an implementation-specific function which is
part of the implementation, since no one else can use such a name for a
function. It takes two arguments, one a pointer to a variable of an
unknown non-standard type GTRID, the other a long. That makes *two*
needed definitions you failed to give us (the macro _() and the type
GTRID). The function returns an int, and has external linkage.