next up previous contents index
Next: L'operatore _Pragma Up: Aggiunte al preprocessore Previous: Aggiunte al preprocessore   Indice   Indice analitico

Macro con argomenti in numero variabile

La possibilità di creare delle macro è molto importante nella programmazione avanzata. Il C89 permetteva di crearne purché accettassero un numero finito di variabili definito immediatamente. Nel C99 questa limitazione viene a cadere. Vediamo un piccolo esempio:

#include <stdio.h>
#include <string.h>

#define copia(funzione, ...) funzione(__VA_ARGS__)

int main(void) {
    char s1[10];

   copia(strcpy, s1,"salve");
   printf("%s\n", s1);
}

Come potete osservare alla quarta riga la macro viene definita. I punti di sospensione indicano che la macro, oltre a funzione accetta un numero non precisato di variabili. Queste variabili verranno sostituite nella posizione specificata dall'indicatore __Pragma__

Alla riga 9 si fa uso della macro copia. Il resto del codice dovrebbe essere chiaro.



blacksheep & 2006-11-22