Registrado: 22 Sep 2005 Mensajes: 1372 Ubicación: En ecx esperando un call
Publicado: 20/09/2007 11:52 pm
Título:
La macro que pretendes usar no aclara nada el codigo por que oculta una llamada a funcion con paso de argumentos en tiempo de ejecucion y eso es peligroso.
La macro correcta seria algo asi:
Código:
#define ENTRADA scanf("%d", &(valor))
sin el ';' final ya que el identificador ENTRADA debe llevarlo fuera de la expansion y no ocultarlo, y las futuras variables entre parentesis.
S2. _________________ - Explícito es mejor que implícito. - Simple es mejor que complejo. - Complejo es mejor que complicado. - Plano es mejor que anidado. - Ralo es mejor que denso.
Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
Publicado: 21/09/2007 7:44 am
Título:
En esta misma linea, en algunas ocasiones se llega a ver codigo fuente donde se sustituye el uso de funciones muy utilizadas por el uso de macros en la forma:
Código:
#define p printf #define s scanf
/* ... */
p("Introduce un numero: "); s("%d", &algun_numero);
/* ... */
Si bien esto reduce el numero de caracteres a teclear se considera codigo ofuscado ya que no hace el codigo mas legible como tampoco mas eficiente.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz