La macro __P()
viene in genere utilizzata per supportare le implementazioni C dai giorni di K & R C, quando non erano presenti prototipi (che sono stati introdotti in C con C89). Fondamentalmente la logica è
#if SOME_LOGIC_TO_TEST_WHETHER_IMPLEMENTATION_SUPPORTS_PROTOTYPES
# define __P(argument_list) argument_list
#else
# define __P(argument_list)()
#endif
Riesci a vedere come funziona se applicato al tuo esempio? Si noti che per questo lavoro e non causa un errore di sintassi, la lista degli argomenti deve includere le parentesi della funzione chiamata, non solo le parentesi del funzione di simil-macro. Quindi le doppie parentesi quando viene utilizzata la macro. Questa è probabilmente la ragione per cui sembra inusuale.
È questo C o C++? (per favore aggiungi il tag alla domanda in entrambi i casi). Sai cosa è la macro '__P'? – Rup
C, ho aggiunto il tag. Non so _P è macro. Il nostro insegnante ci chiede di imparare il file sorgente in berkeleyDB, ma non sono bravo in C. – Cruisehu
@Maybe Dovresti accettare una risposta –