[C con Clase] macros en C/C++

Leonel Florín Selles leonel06033 en cfg.jovenclub.cu
Lun Sep 15 23:25:49 CEST 2008


hola amigos:

bueno les escribo para hacerle una pregunta a la cual le conoscon la
respuesta, pero le conosco la respuesta porque, bueno, es decir,
tengo duda sobre un tema, el cual me lo explicaron, bueno me dijero,
esto es asi y ya, no me explicaron. la cosa es

las macros son creadas con la directiva de procesador

#define

lo que el texto de reemplazo es una operación, la cual puede tener
argumentos o no, me sentro en macros con argumentos, entonces, para
poder pasarle un argumento a la macro tengo que poner () al final
del nombre del identificador de la macro, es decir

ejemplo:

#define AREA(b) 3.14 * (x) * (x)

y para que funciones

area = AREA(2);

ahora, lo que no tengo entendido es, cada vez que valla a pasarle
argumentos a la macro tengo que utilizar esta forma

#define identificador(variable) ..........

y porque......

otra cosa, como sabe #define, que tiene que sustituir a (b) por el
valor 2, si #define lo que hace es sustituri a el identificador que
es la constante simbolica por el texto de reemplazo que son los
simbolos que ponemos despues del identificador en #define.

ya probe en el compilador y si no es asi no lo coje, para mi
entender, esto se procesa como si fuera una función al pasarle la
lista de argumentos que tienen que estar encerrado dentro de
parentesis.

bueno, yo se que eso es asi por regla, y lo comprendo y lo utilizo,
pero alguien tiene una explicación mejor.


saludos.





Más información sobre la lista de distribución Cconclase