Function Pointer Declaration - what does __P do?
问题 The usual form of function pointer definitions is: int function(int, int); int (*ptr)(int, int); but I saw a form today which I didn't understand. Can anyone explain this please? int (*close) __P((struct __db *)); 回答1: The __P() macro is usually used to support C implementations from the days of K&R C, when there were no prototypes (which were introduced to C with C89). Basically the logic is #if SOME_LOGIC_TO_TEST_WHETHER_IMPLEMENTATION_SUPPORTS_PROTOTYPES # define __P(argument_list)