Supponiamo che io ho la seguente macro:come ridefinire una macro utilizzando la sua precedente definizione
#define xxx(x) printf("%s\n",x);
Ora in alcuni file che voglio utilizzare una versione "potenziata" di questa macro senza cambiare il suo nome. La nuova versione esplora la funzionalità della versione originale e fa ancora un po 'di lavoro.
#define xxx(x) do { xxx(x); yyy(x); } while(0)
Questo naturalmente mi dà avvertimento redefition ma il motivo per cui ho 'xxx' non è stato dichiarato in questo ambito? Come dovrei definirlo correttamente?
EDIT: in base a questo http://gcc.gnu.org/onlinedocs/gcc-3.3.6/cpp/Self_002dReferential-Macros.html dovrebbe essere possibile
Quella pagina macro autoreferenziali sta descrivendo le regole impedendo la ricorsione infinita della macro sostituzione. Ciò non significa che è possibile definire una macro per indicare più di una cosa. –