• Viernes 8 de Noviembre de 2024, 23:07

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Game_Over

Páginas: [1]
1
C/C++ / Re: Duda Sobre Uso De If En Macros #define
« en: Lunes 14 de Mayo de 2007, 18:18 »
Cita de: "Eternal Idol"
Cita de: "Game_Over"
tenia interes en saber como usarlas , yo pienso que la clausula define el uso que habria que darle es unicamente para definir constantes , para lo demas funciones y metodos para no complicar mucho el asunto
Esta bien aunque en C++ se puede usar el keyword const y si son valores que guardan una relacion un enum es lo ideal  B)
Gracias por el apunte  :)  , C++ lo vere en un futuro pero me ha parecido interesante empezar por C antes . A ver si le meto fuerte  :smartass:

2
C/C++ / Re: Duda Sobre Uso De If En Macros #define
« en: Lunes 14 de Mayo de 2007, 16:54 »
Cita de: "Eternal Idol"
De nadas  B) Y ahora paso a decir que las macros es mejor obviarlas  :P
jejejejee ,  :D  :D  ,
tenia interes en saber como usarlas ,
yo pienso que la clausula define el uso que habria que darle es unicamente para definir constantes ,

para lo demas funciones y metodos para no complicar mucho el asunto.

Un saludo

3
C/C++ / Re: Duda Sobre Uso De If En Macros #define
« en: Lunes 14 de Mayo de 2007, 16:42 »
Cita de: "Eternal Idol"
El problema es que una macro no es mas que un reemplazo de texto. Si pusieras suma(x1,x2); en una linea solito funcionaria.

Pone el codigo de la macro como argumento a la funcion y veras que tampoco compila, mientras que si copias el codigo del primer macro si lo hace ya que usa el operador ternario.

La \ es lo que se debe usar cuando tenemos macros con mas de una linea y aca tenes mas informacion sobre macros en general:

http://www.ebyte.it/library/codesnippets/W...gCppMacros.html
Estupendo , me has ayudado mucho a entenderlo , gracias por la pagina , es que no tenia muy claro eso de que la macro en realidad lo que hace es "sustituir" cuando la usemos el valor que le dimos en el #define , y yo la estaba utilizando mal

entonces tendria que haberlo hecho asi y si funciona ya , el ejemplo que pongo es muy simple pero era para ver como utilizar un if en una macro : ah y gracias por la pagina esta muy bien . Un saludo

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4.  
  5. #define CambiaOrden(a,b)  if(a>b) a=b
  6. #define Suma(a,b) a+b
  7.                
  8. int main(void){
  9.     int x1=10&#59;
  10.     int x2=5&#59;
  11.     CambiaOrden(x1,x2);
  12.     printf("La suma de %d + %d es igual a %d" ,x1,x2,Suma(x1,x2));
  13.    
  14.     }
  15.  
  16.  

4
C/C++ / Re: Duda Sobre Uso De If En Macros #define
« en: Lunes 14 de Mayo de 2007, 15:45 »
Cita de: "Angel_K_ido"
Los caracteres
Citar
\
No van...  :)


Lo siento no entendi tu respuesta , tened un poco de paciencia conmigo que no llevo mucho con C  B)

5
C/C++ / Re: Duda Sobre Uso De If En Macros #define
« en: Lunes 14 de Mayo de 2007, 08:36 »
Muchas gracias Karman por la respuesta  :) , lo he puesto como dices y me sigue dando error el compilador , uso Dev-C++ y me dice error en la linea 15 (syntax error before 'if)

se que es una chorrada pero ya tengo curiosidad por saber como se pondria bien .

pongo el codigo tal y como lo tengo por si teneis tiempo de echarle un ojo.

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. #define suma(a,b)  \
  5. if(a>b){ \
  6. a+b&#59; \
  7. }else{ \
  8. a&#59; \
  9. }
  10.                
  11. int main(void){
  12.     int x1=10&#59;
  13.     int x2=5&#59;
  14.     printf("La suma de %d + %d es igual a %d" ,x1,x2,suma(x1,x2));
  15.    
  16.     }
  17.  
  18.  
  19.  

Un saludo.

6
C/C++ / Duda Sobre Uso De If En Macros #define
« en: Domingo 13 de Mayo de 2007, 17:12 »
Llevo un par de dias desde que empeze con C y por ahora he visto muy poco , una de las cosas que mas me han llamado la atencion ha sido la clausula #define y la posibilidad de hacer macros con ella , bien la duda es la siguiente:

la macro es muy simple , de esta manera si funciona :

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. #define suma(a,b) (a>b)? a+b : a
  5.                
  6. int main(void){
  7.     int x1=10&#59;
  8.     int x2=5&#59;
  9.     printf("La suma de %d + %d es igual a %d" ,x1,x2,suma(x1,x2));
  10.    
  11.     }
  12.  
  13.  

pero al poner el if de esta otra forma no me sale bien , me da error al compilar :

Código: Text
  1.  
  2. #include <stdio.h>
  3.  
  4. #define suma(a,b)      \
  5. if(a>b) {              \
  6.  a+b;                  \
  7. else                   \
  8.   a&#59;                  \
  9. }                        
  10.      
  11.                
  12. int main(void){
  13.     int x1=10&#59;
  14.     int x2=5&#59;
  15.     printf("La suma de %d + %d es igual a %d" ,x1,x2,suma(x1,x2));
  16.    
  17.     }
  18.  
  19.  

que es lo que estoy haciendo mal en la segunda forma ?   ,despues de cada simbolo de \ le doy a intro para que sepa el compilador que sigue en la siguiente linea.

Por cierto felicidades por la pagina , llegue buscando a traves de google y esta muy bien , hay mucha informacion . Saludos.

Páginas: [1]