c - How do you call functions with __P in the prototype? -


i have been going through header files , see there many function prototype this:

returntype some_name __p(arguments); 

if call function how do it? use like

some_name(arguments); 

excluding __p, or there other way call such functions?

this kind of prototype uses macro __p allow inclusion , compilation on old systems not support c90 prototypes (aka ansi prototypes).

on systems, argument __p macro expands argument list, illustrated below:

#ifdef __using_stone_age_compiler__ #define __p(args)  () #else #define __p(args)  args  int some_name __p((int argc, char *argv[])); 

on obsolete systems, above declaration expands int some_name(); whereas expands full prototype otherwise: int some_name(int argc, char *argv[]);

just ignore __p macro , use some_name(arguments); syntax call function. note macro name __p not significant, author of package have used name purpose.


Comments

Popular posts from this blog

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -