2016-05-17 26 views
5

Ho una linea nel mio codice che assomiglia a questo:Come verificare se una macro simile a una funzione è definita?

#ifndef MACRO(n) 

Questo funziona davvero bene sulla maggior parte dei compilatori. Tuttavia, questo non funziona su Solaris, poiché la sintassi ufficiale è # ifndef identifier new-line groupopt e le parentesi non sono consentite negli identificatori.

Qual è il modo corretto per verificare se questa macro è definita?

+0

Per chiarire. Sai già come verificare se è definito, tramite 'ifdef MACRO'. Vuoi sapere in particolare se è una macro * function *? –

risposta

7

non avete bisogno (n), in realtà gcc si lamenterà se lo si utilizza:

warning: extra tokens at end of #ifndef directive 

questo è perché #ifndef aspetta un identificatore non espressione, (n) è probabilmente ignorato dal preprocessore

Basti semplicemente verificare con nome definizione macro:

Problemi correlati