Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
I have seen function declarations that look like this
I've seen function declarations that look like this:
extern int func __((int, int));
What are those extra parentheses and underscores for?
✍: Guest
They're part of a trick which allows the prototype part of the function declaration to be turned off for a pre-ANSI compiler. Somewhere else is a conditional definition of the __ macro like this:
#ifdef __STDC__
#define __(proto) proto
#else
#define __(proto) ()
#endif
The extra parentheses in the invocation
extern int func __((int, int));
are required so that the entire prototype list (perhaps containing many commas) is treated as the single argument expected by the macro.
2015-05-23, 1844👍, 0💬
Popular Posts:
What CLASSPATH Settings Are Needed to Run JUnit? It doesn't matter if you run your JUnit tests from ...
How was XML handled during COM times? During COM it was done by using MSXML 4.0. So old languages li...
What are the two kinds of comments in JSP and what's the difference between them? <%-- JSP Co...
How To Set session.gc_divisor Properly? - PHP Script Tips - Understanding and Using Sessions As you ...
If we have two version of same assembly in GAC how do we make a choice ? OK first let’s try to under...